SEO Architect
Run ID: 69cb080258b35c7ea758c5292026-03-30SEO & Growth
PantheraHive BOS
BOS Dashboard

Design a complete SEO site architecture including URL structure, internal linking strategy, content silos, hub-and-spoke models, and technical SEO specifications. Perfect for new sites or major redesigns.

SEO Site Architecture Design: Comprehensive Strategy

This document outlines a comprehensive SEO site architecture strategy, designed to optimize your website for search engine visibility, user experience, and long-term organic growth. This architecture is suitable for new website builds or significant redesigns, ensuring a robust foundation for all future SEO efforts.


1. Introduction & Core Principles

A well-planned SEO site architecture is the backbone of a successful online presence. It dictates how search engine crawlers discover and index your content, how PageRank flows throughout your site, and how users navigate and engage with your information. Our strategy focuses on the following core principles:

  • User-Centric Design: Prioritizing intuitive navigation and a seamless user experience.
  • Crawlability & Indexability: Ensuring search engines can efficiently discover, understand, and index all valuable content.
  • Topical Authority: Structuring content to demonstrate deep expertise in specific subject areas, building trust and relevance.
  • Scalability: Designing an architecture that can easily expand and adapt as your content grows.
  • Performance: Incorporating technical specifications for speed, security, and mobile-friendliness.

2. URL Structure Design

A clean, logical, and keyword-rich URL structure is crucial for both search engines and users.

2.1. Principles for URL Design

  • Hierarchical & Logical: URLs should reflect the site's logical structure, making it easy to understand the relationship between pages.

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

  • Keyword Inclusion: Incorporate relevant keywords where natural and concise, focusing on the primary keyword for the page.
  • Readability & Conciseness: Keep URLs short, descriptive, and easy to read. Avoid unnecessary words or parameters.
  • Hyphens for Separators: Use hyphens (-) to separate words in URLs, as recommended by Google. Avoid underscores (_).
  • Lowercase: All URLs should be lowercase to prevent duplicate content issues (e.g., product-name vs. Product-Name).
  • Static vs. Dynamic: Prioritize static, descriptive URLs over dynamic URLs with complex query strings, where possible.
  • Avoid Dates (unless necessary): For evergreen content, avoid including dates in URLs to prevent content from appearing outdated.
  • Canonicalization: Implement canonical tags to designate the preferred version of a URL when multiple URLs point to the same content (e.g., filtered product pages, print versions).

2.2. Example URL Structures

  • Homepage: https://www.yourdomain.com/
  • Main Category Page: https://www.yourdomain.com/category-name/
  • Sub-Category Page: https://www.yourdomain.com/category-name/subcategory-name/
  • Product/Service Page: https://www.yourdomain.com/category-name/subcategory-name/product-service-name/
  • Blog/Article Page: https://www.yourdomain.com/blog/article-topic-keyword/ (or https://www.yourdomain.com/resources/article-topic-keyword/)
  • Static Pages (About Us, Contact): https://www.yourdomain.com/about-us/

3. Internal Linking Strategy

An effective internal linking strategy distributes PageRank, signals topical relevance, and guides users and crawlers through your site.

3.1. Objectives of Internal Linking

  • Distribute PageRank/Link Equity: Pass authority from stronger pages to weaker but important pages.
  • Define Site Hierarchy & Structure: Reinforce the relationship between different content areas.
  • Enhance User Navigation: Help users find related content and spend more time on the site.
  • Signal Topical Relevance: Use descriptive anchor text to inform search engines about the content of the linked page.
  • Improve Crawlability: Ensure all important pages are discoverable by search engine bots.

3.2. Key Components & Best Practices

  • Contextual Links:

* Placement: Integrate relevant links naturally within the body copy of articles, product descriptions, and other content.

* Anchor Text: Use descriptive, keyword-rich, and varied anchor text that accurately reflects the content of the destination page. Avoid generic "click here."

* Relevance: Link to pages that are genuinely relevant and add value to the user experience.

  • Navigational Links:

* Main Navigation: Primary links in the header/menu for top-level categories and essential pages.

* Footer Navigation: Include links to important but non-primary pages (e.g., privacy policy, terms of service, contact, sitemap).

* Sidebar Navigation: For deeper category structures or related content sections.

  • Breadcrumbs:

* Purpose: Provide a clear path back to higher-level categories, improving user navigation and reinforcing site hierarchy.

* Implementation: Typically located at the top of the page, above the main content.

* Schema Markup: Use BreadcrumbList schema to help search engines understand the navigational path.

  • Related Content Sections:

* Examples: "Related Articles," "You Might Also Like," "Customers Who Bought This Also Bought."

* Benefit: Keeps users engaged and helps distribute link equity to relevant pages.

  • XML Sitemap:

* Purpose: Lists all pages and files you want search engines to crawl and index.

* Submission: Submit to Google Search Console and Bing Webmaster Tools.

* Dynamic Updates: Ensure your sitemap automatically updates as new content is added or removed.

  • HTML Sitemap:

* Purpose: A human-readable list of all major pages on your site, primarily for user navigation.

  • Link Depth:

* Aim for important content to be no more than 3-4 clicks from the homepage. This ensures easier discovery for both users and crawlers.


4. Content Silos & Hub-and-Spoke Models

These strategies are critical for establishing topical authority and organizing content in a way that search engines can easily understand your expertise.

4.1. Content Silos

  • Definition: A content silo is a method of organizing your website's content into distinct, thematically related groups. Each silo focuses on a specific overarching topic, with all sub-topics and supporting content linking primarily within that silo.
  • Purpose:

* Build Topical Authority: Clearly signals to search engines your expertise on a specific subject.

* Improve Relevance: Ensures that PageRank and relevance signals flow effectively within related topics.

* Enhance User Experience: Makes it easier for users to find comprehensive information on a particular subject.

  • Structure Implementation:

* Directory-Based Silos: The most common and recommended method. Each main category (silo) has its own directory in the URL structure.

* Example:

* /digital-marketing/ (Main Silo)

* /digital-marketing/seo/ (Sub-topic)

* /digital-marketing/ppc/ (Sub-topic)

* /digital-marketing/social-media/ (Sub-topic)

* Internal Linking-Based Silos: Achieved primarily through internal linking, without necessarily relying on directory structure. While effective, it's harder to maintain strict separation.

  • Silo Linking Rules:

* Vertical Linking: From the silo's main page down to sub-topic pages, and back up.

* Horizontal Linking (within silo): Between related sub-topic pages within the same silo.

* Avoid Cross-Silo Linking (unless essential): Minimize links between different silos to maintain topic separation. If a cross-silo link is necessary, ensure it's highly relevant and limited.

4.2. Hub-and-Spoke (Pillar Content) Model

  • Definition: The hub-and-spoke model (also known as pillar content strategy) is a specialized form of content siloing where a single, comprehensive "pillar page" (the hub) covers a broad topic, and numerous "cluster content" pages (the spokes) delve into specific sub-topics in detail.
  • Relationship to Silos: Pillar pages often serve as the main page for a content silo, with the cluster content forming the detailed pages within that silo.
  • Implementation:

* Pillar Page (Hub):

* Content: A long-form, comprehensive guide that broadly covers a core topic. It's not designed to rank for specific long-tail keywords but for the broad head term.

Internal Linking: Links out to all* cluster content pages that elaborate on sub-topics.

* Cluster Content (Spokes):

* Content: Detailed articles, blog posts, or guides that explore specific aspects or long-tail keywords related to the pillar topic.

* Internal Linking: Each cluster content page links back to the main pillar page, reinforcing its authority and relevance for the overarching topic.

  • Benefits:

* Enhanced Topical Depth: Demonstrates profound expertise to search engines.

* Improved User Experience: Provides clear pathways for users to explore a topic deeply.

* Increased Organic Visibility: Boosts rankings for both the pillar page and cluster content by consolidating link equity and relevance.

* Simplified Content Planning: Offers a clear framework for future content creation.


5. Technical SEO Specifications

Robust technical SEO ensures your site is accessible, fast, and secure, forming the foundation for all other SEO efforts.

5.1. Crawlability & Indexability

  • Robots.txt:

* Purpose: Directs search engine crawlers on which areas of your site they can and cannot access.

* Configuration: Disallow crawling of non-essential pages (e.g., admin areas, internal search results, duplicate content). Ensure it does not block important CSS/JS files.

* Sitemap Reference: Include a reference to your XML sitemap.

  • XML Sitemaps:

* Purpose: Lists all URLs you want search engines to crawl and index.

* Structure: Create separate sitemaps for different content types (e.g., pages, posts, images, videos) if the site is large.

* Attributes: Include lastmod, changefreq, and priority (though priority is less influential now).

* Submission: Register with Google Search Console and Bing Webmaster Tools.

  • Meta Robots Tags:

* noindex: Prevents a page from being indexed by search engines (e.g., thank you pages, internal-only content).

* nofollow: Prevents search engines from following links on a page (e.g., user-generated content with external links).

* index, follow: Default behavior, explicitly states pages should be indexed and links followed.

  • Canonical Tags (rel="canonical"):

* Purpose: Specifies the preferred version of a page when duplicate or near-duplicate content exists (e.g., product pages with different sorting parameters, syndicated content).

* Implementation: Place in the <head> section of the non-canonical page.

  • Hreflang Tags:

* Purpose: For multilingual or multi-regional sites, informs search engines about the different language/region versions of a page.

* Implementation: Use in the <head> section, HTTP header, or XML sitemap.

  • Crawl Budget Optimization:

* Purpose: Efficiently guides crawlers to important content, especially for large sites.

* Methods: Remove low-value pages, fix redirect chains, block internal search results, and ensure clean URL parameters.

5.2. Site Speed & Performance (Core Web Vitals)

  • Core Web Vitals: Optimize for Google's user experience metrics:

* Largest Contentful Paint (LCP): Optimize main content loading speed.

* First Input Delay (FID): Ensure quick interactivity.

* Cumulative Layout Shift (CLS): Minimize unexpected layout shifts.

  • Image Optimization:

* Compression: Compress images without sacrificing quality.

* Lazy Loading: Load images only when they enter the viewport.

* Responsive Images: Serve appropriately sized images for different devices.

* Next-Gen Formats: Utilize formats like WebP.

  • Caching: Implement browser caching and server-side caching to reduce load times for returning visitors.
  • Content Delivery Network (CDN): Use a CDN to serve content from servers geographically closer to users, reducing latency.
  • Minification: Minify CSS, JavaScript, and HTML files to reduce file sizes.
  • Server Response Time: Optimize server performance (hosting, database queries).

5.3. Mobile-Friendliness & Responsiveness

  • Responsive Design: Implement a responsive web design that adapts the layout and content to various screen sizes and devices.
  • Viewport Meta Tag: Ensure the meta name="viewport" tag is correctly configured in the <head> section.
  • Touch Target Sizes: Ensure interactive elements (buttons, links) are large enough and spaced appropriately for easy tapping on mobile devices.

5.4. Security (HTTPS)

  • SSL Certificates: Implement and maintain an SSL certificate to enable HTTPS, encrypting data transfer between the user and the server.
  • 301 Redirects: Ensure all HTTP versions of URLs 301 redirect to their HTTPS counterparts.

5.5. Structured Data (Schema Markup)

  • Purpose: Provides context to search engines about your content, leading to rich snippets in SERPs.
  • Implementation: Use JSON-LD format for ease of implementation.
  • Key Schema Types:

* Organization: For your company's information.

* Article/BlogPosting: For blog posts and articles.

gemini Output

SEO Site Architecture Design: Comprehensive Plan

Project: SEO Architect Design

Deliverable: Complete SEO Site Architecture Plan

Date: October 26, 2023


1. Executive Summary

This document outlines a comprehensive SEO site architecture design, crucial for establishing a robust foundation for a new website or a major redesign. A well-planned architecture enhances crawlability, indexability, user experience (UX), and topical authority, ultimately leading to improved organic search performance.

The plan covers strategic elements including URL structure, content siloing, hub-and-spoke models, internal linking strategy, and critical technical SEO specifications. By adhering to these guidelines, the website will be optimized for both search engine algorithms and user engagement, driving sustainable organic growth.

2. Core Principles of SEO Site Architecture

A strong SEO architecture is built upon the following foundational principles:

  • Hierarchy & Logic: A clear, intuitive structure that is easy for both users and search engine crawlers to understand and navigate.
  • Scalability: A design that can accommodate future growth in content and features without requiring a complete overhaul.
  • User Experience (UX): Prioritizing ease of navigation and a logical flow for visitors, which indirectly benefits SEO.
  • Topical Authority: Grouping related content to demonstrate deep expertise in specific areas, signaling relevance to search engines.
  • Crawlability & Indexability: Ensuring search engines can efficiently discover, crawl, and index all important pages.
  • Minimizing Duplicate Content: Proactively avoiding issues that can dilute authority and confuse search engines.

3. URL Structure Design

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

  • Principles:

* Readability: URLs should be easy for humans to read and understand.

* Descriptive: Clearly indicate the content of the page.

* Keyword Inclusion: Incorporate relevant keywords naturally where appropriate, but avoid keyword stuffing.

* Conciseness: Keep URLs as short as possible without sacrificing clarity.

* Consistency: Maintain a uniform structure across the entire site.

* Static: Avoid dynamic parameters where possible, or ensure they are handled correctly.

  • Recommended Format (Hierarchical):

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

* Top-Level Category: https://www.example.com/category-name/

* Sub-Category: https://www.example.com/category-name/sub-category-name/

* Product/Service/Article Page: https://www.example.com/category-name/sub-category-name/product-service-article-name/

* Blog Post (Alternative for non-hierarchical content): https://www.example.com/blog/article-title/

  • Key Rules:

* Use Hyphens: Separate words with hyphens (-) for readability (e.g., seo-architect-design).

* Lowercase Only: All URL characters should be lowercase.

* Avoid Special Characters: Exclude spaces, underscores (_), and other non-standard characters.

* Consistent Trailing Slashes: Decide on a convention (e.g., always include for directories, omit for files) and enforce it with redirects.

* Remove Dates (for evergreen content): Avoid year/month/day in URLs for content that will be updated over time, as it can make content appear outdated.

Example URL Structure:

  • https://www.pantherahive.com/ (Homepage)
  • https://www.pantherahive.com/seo-services/ (Top-Level Category)
  • https://www.pantherahive.com/seo-services/local-seo/ (Sub-Category)
  • https://www.pantherahive.com/seo-services/local-seo/google-my-business-optimization-guide/ (Service/Guide Page)
  • https://www.pantherahive.com/blog/advanced-content-siloing-techniques/ (Blog Post)

4. Content Siloing and Topical Authority

Content siloing is the strategic grouping of related web pages into distinct, thematic sections. This practice builds deep topical authority, improves relevance for specific keywords, and helps search engines understand the site's areas of expertise.

  • Concept:

* Physical Siloing: Achieved through the URL structure (e.g., /category/sub-category/).

* Virtual Siloing: Implemented through internal linking, where pages within a silo primarily link to each other, minimizing links to unrelated content outside the silo.

  • Benefits:

* Enhanced Relevance: Signals to search engines that the site is a comprehensive resource on a specific topic.

* Improved Rankings: Boosts the ranking potential for both broad category terms and specific long-tail keywords.

* Clearer Navigation: Helps users and crawlers navigate related content efficiently.

  • Implementation Steps:

1. Identify Core Topics: Determine the main subject areas the website covers. These will form the top-level silos.

2. Map Sub-Topics: Break down each core topic into logical sub-topics and specific content ideas.

3. Group Content: Assign all existing and planned content pieces to their most relevant silo.

4. Structure Directories: Design the URL structure to reflect these silos (as described in Section 3).

5. Reinforce with Internal Links: Ensure that pages within a silo heavily link to each other, and that top-level silo pages link down to all relevant sub-category and content pages.

5. Hub-and-Spoke (Topic Cluster) Model

The hub-and-spoke model is an advanced siloing strategy that organizes content around a central "pillar page" (the hub) and multiple supporting "cluster pages" (the spokes).

  • Pillar Page (Hub):

* A comprehensive, high-level overview of a broad topic.

* Targets broad, high-volume keywords (e.g., "SEO Best Practices").

* Does not go into exhaustive detail but links out to all relevant cluster pages.

* Often a long-form guide or a resource page.

  • Cluster Pages (Spokes):

* Detailed articles that delve into specific sub-topics related to the pillar page.

* Target long-tail keywords (e.g., "technical SEO audit checklist," "on-page SEO optimization techniques").

* Each cluster page must link back to the central pillar page.

  • Benefits:

* Deep Topical Authority: Establishes the website as an expert on the overarching topic.

* Improved Organic Visibility: Increases chances of ranking for both broad head terms (pillar) and specific long-tail queries (clusters).

* Enhanced User Journey: Provides a logical path for users to explore a topic in depth.

* Link Equity Distribution: Consolidates link equity around the pillar page, boosting its authority.

Example Hub-and-Spoke Model:

  • Pillar Page (Hub): https://www.example.com/digital-marketing-guide/

* Content: A comprehensive overview of various digital marketing channels and strategies.

  • Cluster Pages (Spokes):

* https://www.example.com/digital-marketing-guide/seo-fundamentals/ (Links back to Pillar)

* https://www.example.com/digital-marketing-guide/ppc-campaign-management/ (Links back to Pillar)

* https://www.example.com/digital-marketing-guide/content-marketing-strategy/ (Links back to Pillar)

* https://www.example.com/digital-marketing-guide/social-media-engagement/ (Links back to Pillar)

6. Internal Linking Strategy

An effective internal linking strategy is crucial for distributing PageRank, establishing topical relevance, improving crawlability, and enhancing user navigation.

  • Key Principles:

* Contextual Links: Embed links naturally within the body copy of content. Anchor text should be descriptive and relevant to the target page.

* Hierarchy Reinforcement: Higher-level pages should link to lower-level pages (e.g., category to sub-category, sub-category to product/article). Lower-level pages should link back up to relevant higher-level pages.

* Breadcrumbs: Implement breadcrumb navigation (Home > Category > Sub-Category > Page) on all pages to show users and search engines the page's location within the site hierarchy.

* Primary Navigation: Ensure the main navigation menu clearly reflects the site's top-level categories and important pages.

* Secondary/Footer Navigation: Utilize for utility pages (Contact, About Us, Privacy Policy, XML Sitemap).

* Avoid Orphan Pages: Every indexable page on the website should be reachable by at least one internal link.

* Anchor Text Variation: Use a mix of exact

gemini Output

SEO Site Architecture Design: Comprehensive Strategy

Project: SEO Architect

Step: 3 of 3 - Generate Comprehensive Professional Output

Topic: SEO Architect

This document outlines a comprehensive SEO site architecture design, incorporating best practices for URL structure, internal linking, content organization, and technical specifications. This architecture is designed to maximize search engine visibility, improve user experience, and establish strong topical authority for your website.


1. Executive Summary

A robust SEO site architecture is the foundational blueprint for a high-performing website. This design focuses on creating a logical, crawlable, and user-friendly structure that clearly signals topical relevance and authority to search engines. By meticulously planning URL structures, implementing strategic internal linking, organizing content into cohesive silos, and ensuring technical excellence, we aim to enhance organic search performance, improve site navigation, and drive qualified traffic. This architecture is suitable for new site builds or significant redesigns, ensuring scalability and long-term SEO success.


2. Core Principles of SEO Site Architecture

The proposed architecture is built upon the following core principles:

  • Clarity & Simplicity: URLs, navigation, and content organization should be intuitive for both users and search engine crawlers.
  • Topical Authority: Grouping related content to establish deep expertise on specific subjects, using content silos and hub-and-spoke models.
  • Crawlability & Indexability: Ensuring search engines can easily discover, crawl, and index all important content.
  • User Experience (UX): A well-structured site improves navigation, reduces bounce rates, and enhances overall user satisfaction.
  • Scalability: The architecture should be flexible enough to accommodate future content growth without requiring major overhauls.
  • Link Equity Flow: Strategically distributing "link juice" from high-authority pages to other important pages across the site.

3. URL Structure Design

A clean, logical, and descriptive URL structure is paramount for SEO and user experience.

3.1. General Guidelines:

  • Human-Readable & Descriptive: URLs should describe the page's content, making them easy to understand for users and search engines.
  • Keyword Inclusion: Incorporate target keywords naturally where appropriate, but avoid keyword stuffing.
  • Hyphens for Separators: Use hyphens (-) to separate words in URLs, not underscores (_) or spaces.
  • Lowercase Letters: All URLs should be lowercase to prevent duplicate content issues (e.g., /Product vs. /product).
  • Static & Persistent: URLs should ideally remain unchanged once published. Use 301 redirects for any necessary changes.
  • Avoid Dynamic Parameters: Minimize the use of dynamic parameters (?id=123&cat=abc) where possible, especially for core content pages. If unavoidable, ensure they are handled correctly via canonical tags and URL parameter tools in Google Search Console.
  • HTTPS: All URLs must use HTTPS for security and SEO benefits.

3.2. Hierarchical Structure:

Implement a logical, shallow hierarchy that reflects the site's content organization. The goal is to keep important content within 2-4 clicks from the homepage.

  • Example Structure: domain.com/category/subcategory/page-title

* domain.com/ (Homepage)

* domain.com/services/ (Category Page - e.g., Digital Marketing Services)

* domain.com/services/seo/ (Subcategory Page - e.g., SEO Services)

* domain.com/services/seo/on-page-optimization/ (Specific Service Page)

* domain.com/blog/ (Blog Homepage)

* domain.com/blog/seo-tips/ (Blog Category Page)

* domain.com/blog/seo-tips/how-to-do-keyword-research/ (Blog Post)

3.3. Actionable Recommendations:

  • Define Core Categories: Map out your primary content categories and subcategories.
  • URL Slug Generation: Implement a system for automatically generating clean URL slugs from page titles, allowing for manual override.
  • Redirect Strategy: Plan for 301 redirects for any legacy URLs or pages that are moved/deleted during a redesign.
  • Canonicalization: Use canonical tags (<link rel="canonical" href="...">) to specify the preferred version of a URL when duplicate content exists (e.g., filtered product pages, print versions).

4. Content Siloing & Hub-and-Spoke Model

This strategy organizes content into distinct, thematically related groups (silos) to establish deep topical authority and improve relevance signals for search engines.

4.1. Content Siloing:

Content siloing involves grouping related web pages together, both physically (through URL structure and directory organization) and virtually (through internal linking).

  • Purpose:

* Topical Authority: Clearly signals to search engines the specific topics the site is an expert in.

* Link Equity Containment: Ensures link equity (PageRank) flows within relevant topics, strengthening individual silo pages.

* Improved User Experience: Helps users find related information more easily.

  • Implementation:

1. Identify Core Topics: Determine 3-7 primary high-level topics your website covers. These will form your main silos.

2. Physical Silos (Directory Structure): Create top-level directories for each core topic.

* Example: domain.com/digital-marketing/, domain.com/web-design/, domain.com/ecommerce/

3. Virtual Silos (Internal Linking):

Vertical Links: Link up from supporting content to subcategory pages, and up* from subcategory pages to the main silo page.

Horizontal Links: Link between related pages within* the same silo.

* Avoid Cross-Silo Linking (unless strategic): Generally, avoid linking directly between pages in different silos unless there's a strong, natural, and logical reason (e.g., a "related resources" section that points to a specific, highly relevant page in another silo, but this should be limited).

4.2. Hub-and-Spoke Model (Pillar Pages & Cluster Content):

Within each silo, the hub-and-spoke model organizes content around a central, comprehensive "pillar page" (the hub) and numerous supporting "cluster content" pages (the spokes).

  • Pillar Pages (Hubs):

* Definition: A comprehensive, long-form content piece (2,000+ words) that covers a broad topic at a high level. It aims to be the definitive resource on that topic.

* Characteristics:

* Targets broad, high-volume keywords.

* Does not go into deep detail on sub-topics; instead, it provides an overview and links out.

* Serves as the central hub for a specific topic.

* Often resides at the category or subcategory level in the URL structure (e.g., domain.com/digital-marketing/seo/).

* Example: "The Ultimate Guide to SEO"

  • Cluster Content (Spokes):

* Definition: Shorter, more detailed content pieces that dive deep into specific sub-topics mentioned in the pillar page.

* Characteristics:

* Targets long-tail or more specific keywords.

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

* Links back to the pillar page, reinforcing its authority.

* Links to other relevant cluster content within the same topic.

* Example (for "The Ultimate Guide to SEO" pillar):

* "How to Conduct Effective Keyword Research"

* "On-Page SEO Best Practices for 2024"

* "Understanding Technical SEO Audits"

* "Link Building Strategies for Small Businesses"

4.3. Actionable Recommendations:

  • Content Audit: Identify existing content that can serve as pillar pages or be repurposed into cluster content.
  • Keyword Mapping: Align broad keywords with pillar pages and specific long-tail keywords with cluster content.
  • Content Creation Plan: Develop a content calendar to create new pillar pages and supporting cluster content.
  • Visual Representation: Create a visual map of your silos and hub-and-spoke relationships to guide content creation and linking.

5. Internal Linking Strategy

Internal links are crucial for guiding users and search engines through your site, distributing link equity, and reinforcing topical relevance.

5.1. Key Principles:

  • Contextual Relevance: Links should always be highly relevant to the surrounding content.
  • Descriptive Anchor Text: Use keyword-rich, descriptive anchor text that accurately reflects the linked page's content. Avoid generic "click here."
  • Link Depth: Ensure all important pages are reachable within 3-4 clicks from the homepage.
  • Balance: Avoid over-linking or under-linking. Focus on quality over quantity.

5.2. Types of Internal Links:

  • Navigational Links (Primary Navigation):

* Purpose: Provides a clear path to major sections of the site.

* Placement: Main menu (header), footer menu, sidebar navigation.

* Actionable: Ensure primary navigation reflects your main content silos and category pages. Use clear, concise labels.

  • Contextual Links (In-Content Links):

* Purpose: Most powerful for SEO, passes significant link equity and strengthens topical relevance.

* Placement: Within the main body of content (blog posts, articles, service pages).

* Actionable:

* Link from cluster content back to its pillar page with relevant anchor text.

* Link from pillar pages to relevant cluster content.

* Link between related cluster content pages within the same silo.

* Link from new content to older, relevant content to refresh its authority.

  • Breadcrumbs:

* Purpose: Enhances user navigation and provides clear hierarchy, helping search engines understand site structure.

* Placement: Typically at the top of the page, below the header.

* Actionable: Implement breadcrumbs using structured data (Schema.org BreadcrumbList) for enhanced visibility in SERPs.

  • Footer Links:

* Purpose: Can link to important utility pages (Contact Us, About Us, Privacy Policy) or secondary content hubs.

* Placement: In the website footer.

* Actionable: Keep footer links concise and relevant. Avoid stuffing with keywords.

  • Related Posts/Products:

* Purpose: Improves user engagement and keeps users on the site longer, while also creating internal links.

* Placement: At the bottom of blog posts or product pages.

* Actionable: Ensure the recommendations are genuinely relevant. Utilize algorithms or manual curation.

5.3. Actionable Recommendations:

  • Automated Linking Tools: Consider using plugins/modules for CMS platforms (e.g., WordPress) to suggest or automate internal links, but always review for relevance and anchor text quality.
  • Link Audit: Regularly audit internal links to identify broken links, orphaned pages (pages with no incoming internal links), and opportunities for new links.
  • Prioritize Important Pages: Strategically link more frequently and with stronger anchor text to your most important pages (e.g., conversion pages, pillar pages).

6. Technical SEO Specifications

A solid technical foundation ensures search engines can efficiently crawl, interpret, and index your content.

6.1. Crawlability & Indexability:

  • XML Sitemaps:

* Actionable: Generate and maintain an XML sitemap (sitemap.xml) listing all canonical, indexable URLs. Submit it to Google Search Console and Bing Webmaster Tools.

* Best Practice: Separate sitemaps for different content types (e.g., sitemap_pages.xml, sitemap_posts.xml, sitemap_images.xml) for easier management.

  • Robots.txt:

* Actionable: Configure robots.txt to guide search engine crawlers, blocking access to non-essential pages (e.g., admin areas, duplicate content, search result pages) while allowing all important content.

* Caution: Ensure you are not blocking pages you want indexed.

  • Canonicalization:

* Actionable: Implement rel="canonical" tags on all pages to prevent duplicate content issues, especially for paginated series, filtered results, or content accessible via multiple URLs.

  • Noindex Tags:

* Actionable: Use meta name="robots" content="noindex" or X-Robots-Tag: noindex in HTTP headers for pages you do not want indexed but might still want crawled (e.g., thank you pages, internal search results).

  • Hreflang Tags:

* Actionable: If targeting multiple languages or regions, implement hreflang attributes to specify language and geographical targeting for equivalent pages.

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

  • Optimization:

* Image Optimization: Compress images, use modern formats (WebP), implement lazy loading.

* Browser Caching: Leverage browser caching for static resources.

* Minification: Minify CSS, JavaScript, and HTML files.

* Server Response Time: Optimize server performance (hosting, CDN).

* Reduce Render-Blocking Resources: Defer non-critical CSS/JS.

* Actionable: Regularly monitor Core Web Vitals (LCP, FID, CLS) using Google Search Console and Lighthouse. Prioritize improvements based on these metrics.

6.3. Mobile-Friendliness:

  • Responsive Design:

* Actionable: Implement a responsive web design that adapts fluidly to various screen sizes and devices.

* Viewport Meta Tag: Ensure the <meta name="viewport" content="width=device-width, initial-scale=1"> tag is present in the <head>.

  • Touch Target Size & Legibility: Ensure elements are easily tappable and text is readable on mobile devices.

6.4. Security (HTTPS):

  • SSL Certificate:

* Actionable: All pages must be served over HTTPS. Obtain and configure an SSL certificate.

* Redirects: Implement 301 redirects from HTTP to HTTPS for all URLs.

6.5. Structured Data (Schema Markup):

  • Enhance SERP Visibility:

* Actionable: Implement relevant Schema.org markup (JSON-LD recommended) for content types such as:

* Organization / LocalBusiness

* Article / BlogPosting

* Product / Offer

* FAQPage

* Review / AggregateRating

* BreadcrumbList

* VideoObject

* Validation: Test structured data implementation using Google's Rich Results Test tool.

**6.6. JavaScript SEO (for SPAs or heavily JS-driven

seo_architect.md
Download as Markdown
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);}});}