SEO Architect
Run ID: 69cbcd1561b1021a29a8c7752026-03-31SEO & Growth
PantheraHive BOS
BOS Dashboard

SEO Site Architecture Design: Comprehensive Strategy

This document outlines a comprehensive SEO site architecture strategy, encompassing URL structure, internal linking, content organization models (silos, hub-and-spoke), and critical technical SEO specifications. This design is crucial for maximizing search engine crawlability, indexability, user experience, and ultimately, organic search performance for new sites or major redesigns.


1. Executive Summary & Core Principles

A robust SEO site architecture acts as the foundational blueprint for your website, guiding both search engine crawlers and human users through your content efficiently and logically. It ensures that content is discoverable, understood, and properly attributed with authority, leading to higher rankings and improved user engagement.

Core Principles:


2. URL Structure Design

The URL structure should be clean, descriptive, and consistent, acting as a clear indicator of content hierarchy and topic.

2.1. Key Characteristics:

2.2. Recommended Structure Format:

[protocol]://[domain]/[category-slug]/[subcategory-slug]/[page-slug]/

2.3. Examples:

* Homepage: https://www.example.com/

* Category Page: https://www.example.com/mens-apparel/

* Subcategory Page: https://www.example.com/mens-apparel/shirts/

* Product Page: https://www.example.com/mens-apparel/shirts/classic-denim-shirt/

* Blog Homepage: https://www.example.com/blog/

* Category Page: https://www.example.com/blog/seo-strategies/

* Article Page: https://www.example.com/blog/seo-strategies/ultimate-guide-internal-linking/

* Services Homepage: https://www.example.com/services/

* Specific Service Page: https://www.example.com/services/web-design/

* Location-Specific Service Page: https://www.example.com/services/web-design/london/

2.4. Canonicalization:

Implement rel="canonical" tags to designate the preferred version of a URL when identical or highly similar content exists across multiple URLs (e.g., product pages with different filter parameters, or content syndicated on multiple URLs). This prevents duplicate content issues.


3. Internal Linking Strategy

An effective internal linking strategy is paramount for distributing link equity, enhancing user navigation, and signaling content relationships to search engines.

3.1. Purpose & Benefits:

3.2. Key Components:

* Link to top-level category pages and critical service/product pages.

* Keep it concise and user-friendly.

* Use keyword-rich anchor text where appropriate for main categories.

* Link to secondary but important pages (e.g., About Us, Contact, Privacy Policy, key service areas, popular categories).

* Can include a more extensive list than the main menu.

* Most powerful for SEO. Link from relevant body text of one page to another related page.

* Anchor Text: Use descriptive, keyword-rich, natural-sounding anchor text that accurately reflects the linked page's content. Avoid generic "click here."

* Quantity: Link naturally. Don't overdo it, but ensure all relevant opportunities are taken.

* Relevance: Only link to pages that provide genuine additional value or context.

* Home > Category > Subcategory > Current Page

* Provides clear hierarchical context for users and crawlers.

* Recommended to implement with Schema.org markup for enhanced search results.

* "Related Articles," "You Might Also Like," "Customers Also Bought."

* Automated or manually curated links to relevant content, often found at the bottom of articles or product pages.

While not an internal linking strategy* in itself, XML sitemaps explicitly list all important pages you want search engines to crawl and index. Submit to Google Search Console and Bing Webmaster Tools.

* Ensure sitemaps are kept up-to-date and only include canonical, indexable URLs.

3.3. Preventing Orphan Pages:

Ensure every important page on the site is linked to from at least one other page, preferably more, to avoid "orphan pages" that crawlers cannot discover. Regularly audit for orphan pages.


4. Content Silos & Hub-and-Spoke Models

These models are critical for organizing content thematically, building topical authority, and efficiently distributing link equity.

4.1. Content Silos

Definition: A content silo is a method of grouping related web pages together structurally and thematically, creating a clear organizational hierarchy around specific topics. This signals to search engines that your site has deep expertise in a particular area.

Purpose:

Implementation:

* The most robust method. Content for a specific topic resides within its own directory.

Example:* example.com/digital-marketing/, example.com/digital-marketing/seo/, example.com/digital-marketing/ppc/

Internal links primarily flow within the digital-marketing directory, with limited linking out* to other top-level silos (e.g., web-development).

* Used when physical directory structure isn't feasible or desired.

* Relies entirely on internal linking to establish thematic connections.

Example:* A central "SEO" page links to all related SEO articles, and those articles link back to the main "SEO" page and to each other, forming a tightly knit network, even if their URLs are not in a /seo/ subdirectory.

* Silo Landing Page (Category Page): The top-level page for the silo (e.g., /digital-marketing/). It provides an overview and links to all sub-pages within the silo.

* Supporting Pages (Sub-Categories/Articles): Individual pages that delve into specific aspects of the silo's topic. These pages link back to the silo landing page and to other relevant supporting pages within the same silo.

4.2. Hub-and-Spoke Model

Definition: A specific type of content silo where a central, comprehensive "hub" page (often a pillar page or ultimate guide) links out to multiple, more specific "spoke" pages, and these spoke pages link back to the hub.

Purpose:

Implementation:

* Comprehensive: Covers a broad topic thoroughly but at a high level.

* Long-form Content: Often 2,000+ words.

* Keyword Focus: Targets a broad, high-volume keyword (e.g., "Content Marketing Strategy").

* Internal Links Out: Links to all relevant spoke pages with descriptive anchor text.

* Minimal External Links: Focus on internal authority.

* Specific: Dives deep into a sub-topic of the hub (e.g., "Content Auditing," "Content Promotion Tactics").

* Detailed: Provides in-depth information, examples, and actionable advice.

* Keyword Focus: Targets long-tail or more specific keywords related to the hub.

* Internal Link Back: Links back to the main hub page (and potentially other relevant spokes within the same cluster).

* Hub: example.com/content-marketing-strategy/

* Spokes:

* example.com/content-marketing-strategy/content-auditing/

* example.com/content-marketing-strategy/content-promotion-tactics/

* example.com/content-marketing-strategy/measuring-content-roi/

* Each spoke page links back to the "Content Marketing Strategy" hub page.


5. Technical SEO Specifications for Architecture

Technical SEO ensures that search engines can efficiently crawl, interpret, and index your website's content.

5.1. Crawlability & Indexability:

* A file that tells search engine crawlers which pages or files they can or cannot request from your site.

Specification: Disallow pages that offer no SEO value (e.g., internal search results, admin pages, duplicate content versions). Ensure critical pages are not* disallowed.

Example:*

text • 136 chars
        User-agent: *
        Disallow: /wp-admin/
        Disallow: /tag/
        Sitemap: https://www.example.com/sitemap.xml
        
Sandboxed live preview
  • Meta Robots Tags:

* HTML tags placed in the <head> section of a page to control indexing and following of links.

* noindex: Prevents a page from being indexed. Use for low-value, thin, or duplicate content.

* nofollow: Prevents crawlers from following links on the page. Use sparingly.

* noarchive: Prevents search engines from caching a page.

* nosnippet: Prevents a text snippet or video preview from being shown in search results.

  • XML Sitemaps:

* Lists all important pages on your site, making it easier for search engines to discover them.

Specification:* Include only canonical, indexable URLs. Keep sitemaps updated. Break into multiple sitemaps for very large sites (e.g., sitemap for products, sitemap for blog posts).

Example:* sitemap_index.xml pointing to sitemap_pages.xml, sitemap_posts.xml, sitemap_products.xml.

  • Canonical Tags (rel="canonical"):

* Used to specify the preferred version of a page when duplicate or near-duplicate content exists.

Specification:* Every page should ideally have a self-referencing canonical tag. If a page is a duplicate, its canonical tag should point to the preferred version.

  • HTTP Status Codes:

* 301 Redirect (Permanent): Used when a page's URL has permanently changed. Passes almost all link equity.

* 302 Redirect (Temporary): Used for temporary redirects. Passes little to no link equity. Avoid for permanent changes.

* 404 Not Found: Indicates a page does not exist.

* 410 Gone: Indicates a page is permanently removed and will not return.

Specification:* Implement 301 redirects for all old URLs during site migrations or redesigns. Create a custom 404 page that guides users back to the main site.

5.2. Site Speed & Performance (Core Web Vitals):

  • Image Optimization:

* Compress images (lossless or lossy).

* Use modern formats (WebP).

* Specify image dimensions (width, height) to prevent layout shifts.

* Lazy load off-screen images.

  • Caching: Implement browser caching and server-side caching to reduce load times.
  • Minification: Minify HTML, CSS, and JavaScript files to reduce file sizes.
  • Server Response Time: Optimize server performance (hosting, database queries).
  • Core Web Vitals: Focus on optimizing Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS) for improved user experience and ranking signals.

5.3. Mobile-Friendliness:

  • Responsive Design: Website layout should adapt seamlessly to different screen sizes (desktops, tablets, mobile).
  • Viewport Meta Tag: Include <meta name="viewport" content="width=device-width, initial-scale=1"> in the <head> section.
  • Touch Target Sizes: Ensure buttons and links are large enough and spaced adequately for touch interaction.

5.4. Security (HTTPS):

  • SSL/TLS Certificate:
gemini Output

SEO Site Architecture Design: Comprehensive Strategy

This document outlines a comprehensive SEO site architecture designed to maximize organic visibility, improve user experience, and establish strong topical authority. This strategy is suitable for new website builds or significant redesigns, focusing on scalability, crawlability, indexability, and a robust internal linking framework.


1. Executive Summary

A well-planned SEO site architecture is the foundational blueprint for organic search success. It dictates how search engines crawl and understand your content, how users navigate your site, and how authority (PageRank) flows through your pages. This design focuses on creating a logical, user-friendly, and search engine-optimized structure through strategic URL design, intelligent internal linking, content siloing, and robust technical specifications. The goal is to build a site that is easy to discover, understand, and rank highly for relevant keywords, ultimately driving qualified organic traffic and conversions.


2. Core Principles of SEO Site Architecture

Our design adheres to the following core principles:

  • Scalability: The architecture must easily accommodate future content growth without requiring major overhauls.
  • Crawlability & Indexability: Ensure search engine bots can efficiently discover, crawl, and index all important pages.
  • User Experience (UX): A logical and intuitive structure enhances user navigation, reduces bounce rates, and improves engagement.
  • Topical Authority: Grouping related content effectively establishes expertise and authority around specific topics, leading to higher rankings.
  • Link Equity Flow: Optimize the distribution of PageRank and link equity to key pages, improving their ranking potential.
  • Consistency: Maintain uniform patterns for URLs, navigation, and content organization across the entire site.

3. Proposed Site Architecture Model

We recommend a hierarchical, flat architecture where important pages are easily accessible from the homepage (ideally within 3-4 clicks). This model combines the clarity of a hierarchy with the benefits of minimal click depth for critical content. The structure will be primarily driven by user intent and keyword research, mapping content to the stages of the customer journey.

Example Hierarchy:

  • Level 1: Homepage (/)
  • Level 2: Primary Categories/Pillars (/category/) - Broad topics, high-volume keywords.
  • Level 3: Sub-Categories/Hub Pages (/category/sub-category/) - More specific topics, mid-volume keywords.
  • Level 4: Detail Pages/Spoke Pages (/category/sub-category/product-or-article/) - Highly specific content, long-tail keywords.

4. URL Structure Design

A clean, descriptive, and consistent URL structure is crucial for both user experience and SEO.

Key Principles:

  • Readability: URLs should be easy for humans to understand and remember.
  • Keyword Inclusion: Incorporate target keywords where natural and relevant.
  • Hierarchy Reflection: URLs should ideally reflect the site's content hierarchy.
  • Conciseness: Keep URLs as short as possible while remaining descriptive.
  • Consistency: Maintain a consistent pattern across the entire site.

Specific Recommendations:

  • Lowercase only: All URLs should use lowercase characters to avoid duplicate content issues.
  • Hyphens as separators: Use hyphens (-) to separate words in URLs (e.g., best-seo-practices). Avoid underscores (_).
  • Avoid special characters: Do not use spaces, commas, or other special characters.
  • Remove dynamic parameters: Minimize or eliminate unnecessary parameters unless absolutely required (e.g., ?id=123). Use static, descriptive URLs instead.
  • Trailing slashes: Standardize on either always including or always omitting trailing slashes for directories (e.g., /category/ vs. /category). Consistency is key; typically, trailing slashes are used for directories and omitted for files.

Proposed URL Patterns (Examples):

  • Homepage: https://www.example.com/
  • Primary Category Page: https://www.example.com/digital-marketing/
  • Sub-Category/Service Page: https://www.example.com/digital-marketing/seo-services/
  • Specific Service/Product Page: https://www.example.com/digital-marketing/seo-services/local-seo-audit/
  • Blog Category Page: https://www.example.com/blog/seo-tips/
  • Blog Post Page: https://www.example.com/blog/seo-tips/how-to-optimize-google-my-business/
  • Informational/Guide Page (within a silo): https://www.example.com/resources/seo-glossary/

5. Internal Linking Strategy

An intelligent internal linking strategy is paramount for directing link equity, improving crawlability, and enhancing user navigation.

Key Components & Best Practices:

  • Global Navigation (Main Menu):

* Prominently feature links to all primary categories and critical service/product pages.

* Keep the main navigation concise and intuitive.

* Use descriptive, keyword-rich anchor text for navigation items.

  • Footer Navigation:

* Include links to utility pages (e.g., Contact Us, About Us, Privacy Policy, Terms of Service).

* Can also include secondary navigation to important categories or resources.

  • Breadcrumbs:

* Implement breadcrumbs on all pages (except homepage) to show the user's path within the site hierarchy.

* Use schema markup for breadcrumbs to enhance search engine understanding.

* Example: Home > Digital Marketing > SEO Services > Local SEO Audit

  • Contextual Links (In-Content):

* Strategically link relevant keywords and phrases within the body of articles, blog posts, and service pages to other related, deeper content.

* Use natural, descriptive anchor text that provides context for the linked page.

* Avoid over-optimization; links should genuinely help the user.

  • "Related Posts" / "Further Reading" / "Recommended Products":

* Implement sections on content pages that link to other relevant articles, products, or services within the same topic silo. This keeps users engaged and spreads link equity.

  • HTML & XML Sitemaps:

* HTML Sitemap: A user-facing page listing all major sections and important pages, primarily for user navigation and crawlability.

* XML Sitemap: Submitted to search engines (via Google Search Console, Bing Webmaster Tools) listing all indexable URLs, their last modification dates, and priority. This helps search engines discover all content efficiently.

  • Link Depth:

* Ensure all important pages are accessible within 3-4 clicks from the homepage.

* The fewer clicks, the more PageRank typically flows to that page.


6. Content Siloing & Hub-and-Spoke Models

Content siloing is a method of organizing your site's content into distinct, thematically related groups to build deep topical authority and improve rankings for competitive keywords. The Hub-and-Spoke model is an advanced form of siloing.

Content Siloing:

  • Purpose: To clearly signal to search engines the specific topics your site is an authority on, preventing dilution of link equity across unrelated content.
  • Methods:

* Directory/Folder Siloing (Physical): Organizing content into distinct URL paths (e.g., /seo-services/, /ppc-campaigns/, /social-media/). This is the strongest form of siloing.

* Internal Link Siloing (Virtual): Using internal links to connect only highly related content within a specific topic, even if their URLs are not in the same directory. This is used in conjunction with physical siloing.

Hub-and-Spoke Model:

This model is a powerful way to structure content within a silo.

  • Hub Pages (Pillar Content):

* Broad, comprehensive overview of a major topic (e.g., "The Ultimate Guide to SEO").

* Targets high-volume, competitive head terms.

* Links out to all related "spoke" pages.

* Should be highly authoritative, well-researched, and frequently updated.

  • Spoke Pages (Cluster Content):

* Detailed, specific articles or pages that delve into sub-topics covered generally by the hub page (e.g., "Keyword Research Strategies," "Technical SEO Checklist," "Link Building Tactics").

* Target long-tail and more specific keywords.

* Each spoke page links back to its central hub page.

Spoke pages can also link to other relevant spoke pages within the same* silo.

Linking Pattern within a Hub-and-Spoke Silo:

  • Hub Page links to ALL Spoke Pages within its silo.
  • Each Spoke Page links back to its Hub Page.
  • Spoke Pages can link to other highly relevant Spoke Pages within the same silo (e.g., "Keyword Research Strategies" linking to "On-Page SEO Best Practices" if it mentions keyword placement).
  • Crucially, avoid linking across different silos unless absolutely necessary and logically sound. This maintains the integrity of each silo's topical authority.

Benefits:

  • Deep Topical Authority: Establishes your site as an expert in specific niches.
  • Improved Rankings: Hub pages gain authority from spokes, and spokes gain authority from the hub, boosting rankings for both broad and long-tail keywords.
  • Enhanced User Experience: Provides a clear learning path for users exploring a topic.
  • Better Crawlability: Search engines can easily understand the relationships between content.

7. Technical SEO Specifications

Robust technical SEO ensures the site is healthy, fast, and fully accessible to search engines.

  • Crawlability & Indexability:

* Robots.txt: Correctly configure to allow crawling of all important sections and disallow irrelevant or duplicate content (e.g., /wp-admin/, internal search results).

* XML Sitemaps: Generate and regularly update XML sitemaps for all canonical, indexable content types (pages, posts, products, images). Submit to Google Search Console and Bing Webmaster Tools.

* Canonical Tags (<link rel="canonical">): Implement on all pages to specify the preferred version of a URL, preventing duplicate content issues (e.g., for filtered pages, tracking parameters, or www vs. non-www).

* Noindex/Nofollow: Use meta robots="noindex" for pages that should not appear in search results (e.g., thank you pages, login pages, internal search results, paginated archives beyond a certain depth). Use nofollow for links that should not pass PageRank.

  • Page Speed & Core Web Vitals:

* Image Optimization: Compress images, use modern formats (WebP), implement lazy loading, specify width and height attributes to prevent layout shifts (CLS).

* Caching: Implement browser caching, server-side caching (e.g., Redis, Memcached), and CDN caching.

* Minification: Minify CSS, JavaScript, and HTML files to reduce file sizes.

* Defer/Async JavaScript: Load non-critical JavaScript asynchronously or defer its loading to improve Largest Contentful Paint (LCP).

* CDN (Content Delivery Network): Utilize a CDN for faster content delivery to users globally and improved Core Web Vitals.

* Server Response Time: Optimize hosting environment and database queries.

  • Mobile-Friendliness:

* Responsive Design: The website must be fully responsive, adapting seamlessly to all screen sizes (desktop, tablet, mobile).

* Viewport Meta Tag: Ensure `<meta name="viewport" content="width=device

gemini Output

SEO Site Architecture Design: Comprehensive Deliverable

This document outlines a comprehensive SEO site architecture designed to maximize organic visibility, user experience, and crawl efficiency for your website. This architecture is suitable for new site builds or significant redesigns, providing a robust foundation for long-term SEO success.


1. Foundational Principles & Goals

The core objective of this SEO site architecture is to create a logical, intuitive, and search engine-friendly structure that facilitates:

  • Optimal Crawlability & Indexability: Ensuring search engines can easily discover, crawl, and index all important content.
  • Enhanced User Experience (UX): Providing clear navigation paths and logical content grouping for visitors.
  • Effective Authority Distribution: Strategically channeling PageRank and link equity across the site.
  • Topical Authority & Relevance: Establishing the site as an authoritative source for key topics through content siloing.
  • Scalability: Designing a structure that can easily accommodate future content growth.

2. URL Structure Design

A well-structured URL is both user-friendly and search engine-friendly, providing clear signals about content hierarchy and relevance.

2.1. URL Principles

  • Descriptive & Keyword-Rich: URLs should clearly describe the page's content, incorporating relevant keywords where natural.

Example:* yourdomain.com/category/product-name

  • Hierarchical & Logical: URLs should reflect the site's logical structure, making it easy for users and search engines to understand the page's position within the site.

Example:* yourdomain.com/services/web-design/e-commerce-solutions

  • Static & Permanent: Avoid dynamic parameters where possible. If necessary, ensure they are handled correctly (e.g., via canonicalization or GSC parameter handling).
  • Use Hyphens for Separators: Hyphens (-) are preferred over underscores (_) for word separation.
  • Lowercase: All URLs should be lowercase to avoid duplicate content issues (e.g., page.html vs. Page.html).
  • Concise: Keep URLs as short as possible while retaining descriptiveness.
  • No Trailing Slashes (Consistent): Choose one convention (e.g., with or without trailing slash) and enforce it with 301 redirects to prevent duplicate content.

Recommendation:* Use a consistent trailing slash (e.g., yourdomain.com/category/ for directories, yourdomain.com/page-name for specific pages).

2.2. URL Hierarchy Examples

  • Homepage: yourdomain.com/
  • Primary Categories: yourdomain.com/category-name/
  • Subcategories: yourdomain.com/category-name/subcategory-name/
  • Product/Service Pages: yourdomain.com/category-name/subcategory-name/product-or-service-name/
  • Blog/Article Pages: yourdomain.com/blog/topic-name/article-title/ (Alternatively: yourdomain.com/articles/article-title/ or yourdomain.com/article-title/ if blog is not a primary category focus)
  • Static Pages (About Us, Contact): yourdomain.com/about-us/, yourdomain.com/contact/

2.3. Canonicalization

  • Implement canonical tags (<link rel="canonical" href="..." />) on all pages to specify the preferred version of content, especially for pages accessible via multiple URLs (e.g., filtered results, pagination, HTTP vs. HTTPS).
  • Self-referencing canonicals should be used on all unique pages.

3. Content Siloing and Hub-and-Spoke Model

Content siloing organizes content into distinct, topically-focused clusters, while the Hub-and-Spoke model provides a specific framework for establishing topical authority within these silos.

3.1. Content Siloing Strategy

Definition: Content siloing is the process of grouping related content together, both structurally (via internal links and URL paths) and thematically, to establish deep topical authority on specific subjects.

Benefits:

  • Boosts Topical Authority: Signals to search engines that your site is an expert on a specific subject.
  • Improved PageRank Flow: Concentrates link equity within relevant topics, strengthening the authority of key pages.
  • Enhanced User Experience: Helps users find related content easily, increasing engagement and time on site.
  • Better Keyword Rankings: Stronger topical relevance often leads to higher rankings for target keywords.

Implementation:

  • Physical Siloing: Achieved through URL structure (e.g., yourdomain.com/topic-A/subtopic-1/, yourdomain.com/topic-A/subtopic-2/).
  • Virtual Siloing: Achieved through strategic internal linking, even if the URL structure isn't strictly hierarchical for all pages. This is where the Hub-and-Spoke model is crucial.

3.2. Hub-and-Spoke Model (Topic Clusters)

The Hub-and-Spoke model is a powerful virtual siloing technique that organizes content around a central, comprehensive "Hub" page (Pillar Page) that links out to several related "Spoke" pages (Cluster Content).

Components:

  • Hub Page (Pillar Content):

* Definition: A comprehensive, high-level overview of a broad topic. It aims to answer the main questions about a topic without going into excessive detail.

* Characteristics: Long-form (2,000+ words often), covers a broad keyword, serves as the central point for a content cluster.

* Linking: Links out to all relevant Spoke pages and receives links from them.

Example:* "The Ultimate Guide to Digital Marketing"

  • Spoke Pages (Cluster Content):

* Definition: Detailed, in-depth articles that explore specific sub-topics or long-tail keywords related to the Hub page.

* Characteristics: Shorter than Hubs (500-1500 words), targets specific long-tail keywords, provides detailed answers to narrow questions.

* Linking: Links back to the Hub page and can link to other relevant Spoke pages within the same cluster.

Example (for "Digital Marketing" Hub):* "Beginner's Guide to SEO Keywords," "How to Create a Facebook Ad Campaign," "Understanding Google Analytics Metrics."

Linking Strategy within Hub-and-Spoke:

  1. Hub to Spokes: The Hub page links to all its Spoke pages, typically using descriptive anchor text.
  2. Spokes to Hub: All Spoke pages link back to the Hub page, again using relevant anchor text.
  3. Spokes to Spokes (within same cluster): Spoke pages can link to other highly relevant Spoke pages within the same cluster to enhance topical interconnectedness.

Benefits of Hub-and-Spoke:

  • Clear Topical Relevance: Signals strong expertise on a topic to search engines.
  • Improved Rankings: Elevates the authority of the Hub page and, by extension, the Spoke pages.
  • Enhanced User Journey: Guides users through related content, improving engagement.
  • Efficient Content Planning: Provides a structured approach to content creation.

Example Silo Structure (e-commerce for "Outdoor Gear"):

  • Category Silo: Hiking Gear

* Hub Page: yourdomain.com/hiking-gear/ (e.g., "The Complete Guide to Hiking Gear")

* Spoke Page 1: yourdomain.com/hiking-gear/backpacks/ (e.g., "Choosing the Best Hiking Backpack")

Links to:* yourdomain.com/hiking-gear/

* Spoke Page 2: yourdomain.com/hiking-gear/boots/ (e.g., "Review of Top Hiking Boots for 2024")

Links to:* yourdomain.com/hiking-gear/

* Spoke Page 3: yourdomain.com/hiking-gear/tents/ (e.g., "How to Select a Lightweight Tent")

Links to:* yourdomain.com/hiking-gear/

Additional Spoke pages could cover:* navigation tools, hiking apparel, safety equipment.


4. Internal Linking Strategy

Internal links are crucial for guiding search engine crawlers, distributing link equity (PageRank), and improving user navigation.

4.1. Key Principles

  • Contextual Relevance: Links should always be highly relevant to the surrounding content.
  • Descriptive Anchor Text: Use keyword-rich, natural-sounding anchor text that accurately describes the destination page. Avoid generic "click here."
  • Deep Linking: Link to relevant pages deep within the site structure, not just primary category pages.
  • Avoid Orphan Pages: Ensure every important page is reachable via at least one internal link.
  • Strategic Placement: Place links naturally within body content, navigation, footers, and related content sections.
  • Limit Links Per Page: While there's no hard limit, avoid overwhelming pages with too many links, which can dilute authority and negatively impact UX.

4.2. Implementation Areas

  • Global Navigation (Header & Footer):

* Header: Primary categories, key service/product areas, "About Us," "Contact." Keep it concise and user-focused.

* Footer: Secondary links, legal pages (privacy policy, terms of service), sitemap link, social media.

  • Breadcrumbs:

* Implement breadcrumbs on all relevant pages (e.g., Home > Category > Subcategory > Current Page).

* Helps users understand their location and provides clear hierarchical links for crawlers.

* Use BreadcrumbList Schema Markup.

  • In-Content Links:

* The most powerful type of internal link. Strategically link from relevant articles, blog posts, and service pages to other related content and key money pages.

* Prioritize linking from high-authority pages to pages that need a boost.

  • "Related Posts" / "Further Reading" Sections:

* Automated or manually curated sections that suggest relevant content to users, creating additional internal links.

  • Product/Service Cross-Linking:

* On product pages, link to related products, accessories, or complementary services (e.g., "Customers also bought," "Related services").

  • XML Sitemap:

* While not an internal link in the traditional sense, an XML sitemap is critical for crawlers to discover all pages, especially new or deep content. Submit it to Google Search Console.


5. Technical SEO Specifications

A solid technical foundation is paramount for search engine visibility and user experience.

5.1. Crawlability & Indexability

  • Robots.txt:

* Properly configure robots.txt to guide search engine crawlers, blocking access to non-essential or duplicate content (e.g., admin pages, search result pages, filtered views) while allowing access to all important content.

* Include a link to your XML sitemap.

  • XML Sitemaps:

* Generate and maintain an up-to-date XML sitemap that lists all canonical, indexable URLs.

* Submit the sitemap to Google Search Console and Bing Webmaster Tools.

* Consider separate sitemaps for different content types (e.g., pages, posts, images, video) for large sites.

  • Meta Robots Tags:

* Use <meta name="robots" content="noindex, follow"> for pages that should not be indexed but whose links should be followed (e.g., thank you pages, internal search results with unique content).

* Use <meta name="robots" content="noindex, nofollow"> for completely private or irrelevant pages.

  • HTTP Status Codes:

* Ensure proper use of HTTP status codes:

* 200 OK: For live, accessible pages.

* 301 Permanent Redirect: For moved content, URL changes, or consolidating duplicate URLs (e.g., HTTP to HTTPS, non-www to www).

* 404 Not Found: For genuinely missing pages.

* 410 Gone: For content permanently removed.

* Avoid 302 Temporary Redirect for permanent changes.

  • Site Audit: Regularly audit the site for broken links, redirect chains, crawl errors, and other technical issues.

5.2. Site Speed & Core Web Vitals (CWV)

  • Optimize Images: Compress images, use modern formats (WebP), implement responsive images, and lazy load off-screen images.
  • Browser Caching: Leverage browser caching to store static assets, reducing load times for returning visitors.
  • Minify Resources: Minify CSS, JavaScript, and HTML files to reduce file sizes.
  • Reduce Server Response Time: Choose a reputable hosting provider, optimize database queries, and use a Content Delivery Network (CDN).
  • Eliminate Render-Blocking Resources: Prioritize critical CSS and JavaScript for above-the-fold content.
  • Lazy Loading: Implement lazy loading for images and videos below the fold.
  • Largest Contentful Paint (LCP): Optimize the loading time of the largest element on the page.
  • Cumulative Layout Shift (CLS): Prevent unexpected layout shifts by reserving space for dynamically loaded content.
  • First Input Delay (FID): Ensure quick interactivity by optimizing JavaScript execution.

5.3. Mobile-Friendliness & Responsive Design

  • Responsive Web Design: Implement a single, responsive design that adapts to various screen sizes and devices. This is Google's recommended approach.
  • Viewport Meta Tag: Include <meta name="viewport" content="width=device-width, initial-scale=1"> in the <head> of all pages.
  • Touch Target Size: Ensure buttons and links are large enough and spaced appropriately for easy tapping on touchscreens
seo_architect.txt
Download source file
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}