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

SEO Site Architecture Design: Comprehensive Strategy for Optimal Performance

This document outlines a detailed SEO site architecture strategy, designed to establish a robust, scalable, and search engine-friendly foundation for your website. This architecture prioritizes crawlability, indexability, topical authority, and user experience, ensuring maximum visibility and organic growth.


1. Executive Summary

A well-planned SEO site architecture is the backbone of any successful digital presence. This strategy encompasses logical URL structures, powerful internal linking, thematic content silos, and critical technical SEO specifications. By implementing these recommendations, your website will be optimized for search engine understanding, efficient content discovery, and superior user navigation, leading to improved rankings, increased organic traffic, and enhanced authority within your niche.


2. Foundational Principles of SEO Architecture

Our approach is built upon the following core principles:


3. URL Structure Design

A clean, logical, and descriptive URL structure is crucial for both search engines and users.

3.1. Best Practices

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

* Bad: yourdomain.com/p?id=123&cat=456

* Good: best-seo-practices

* Bad: best_seo_practices or bestseopractices

* Example: yourdomain.com/category/subcategory/product-or-article-title

3.2. Example URL Structures

3.3. Considerations


4. Content Siloing and Thematic Grouping

Content siloing is the practice of grouping related content together to establish strong topical authority and improve crawl path efficiency.

4.1. Concept & Benefits

* Enhanced Topical Relevance: Clearly signals to search engines the specific topics your site is authoritative on.

* Improved Crawl Depth: Bots can more easily discover deep-level content within a well-structured silo.

* Efficient Link Equity Flow: Concentrates link equity within a specific topic, boosting the ranking potential of all pages in that silo.

* Better User Navigation: Users can easily find related information, improving their on-site experience.

4.2. Siloing Methods

* This is achieved through the URL structure (e.g., yourdomain.com/seo-services/, yourdomain.com/content-marketing/).

* Each top-level directory represents a major silo.

* Implementation: Design your URL structure to reflect these silos.

* This is the most common and flexible method, achieved through strategic internal linking.

* Pages within a silo link to each other, but rarely (or only very strategically) to pages outside their silo.

* Implementation: Ensure contextual links within content primarily connect pages within the same silo.

4.3. Implementation Strategy

  1. Identify Core Topics: Determine the main pillars of your business/website. These will be your top-level silos.

Example:* "SEO Services," "Content Marketing," "Web Design."

  1. Map Sub-Topics: For each core topic, identify related sub-topics and individual articles/pages.

Example (under "SEO Services"):* "Technical SEO," "Keyword Research," "Link Building," "Local SEO."

  1. Structure Content: Group all related content under its respective silo.
  2. Enforce Linking Rules:

Prioritize internal links between pages within* the same silo.

Minimize (or carefully control) links between* different silos to avoid diluting topical focus.

* The homepage can link to all top-level silo pages.


5. Hub-and-Spoke Content Model (Pillar Content Strategy)

The Hub-and-Spoke model is an advanced content siloing technique that builds extreme topical authority around a central "pillar" piece of content.

5.1. Concept

5.2. Benefits

5.3. Implementation

  1. Identify Hub Topics: Choose a core, high-value topic that can be broken down into many sub-topics.

Example Hub:* "Complete Guide to SEO Strategy"

  1. Develop Spoke Content: Create multiple detailed articles that expand on specific aspects of the hub topic.

Example Spokes (for "Complete Guide to SEO Strategy"):* "Advanced Keyword Research Techniques," "Building High-Quality Backlinks," "Technical SEO Audit Checklist," "Local SEO Best Practices."

  1. Link Structure:

Hub to Spokes: The Hub page links out to all* of its related Spoke pages. Anchor text should be descriptive and relevant to the spoke content.

* Spokes to Hub: Each Spoke page links back to its central Hub page. This reinforces the hub's authority.

Spokes to Spokes (within cluster): Spoke pages can link to other highly relevant spoke pages within the same cluster* if it enhances user experience and adds value.

text • 153 chars
    [HUB PAGE]
        |
        |-----> [SPOKE PAGE 1]
        |-----> [SPOKE PAGE 2]
        |-----> [SPOKE PAGE 3]
        |-----> [SPOKE PAGE 4]
    
Sandboxed live preview

SEO Site Architecture Design: Comprehensive Strategy

This document outlines a complete SEO site architecture designed for optimal crawlability, indexability, user experience, and search engine ranking potential. This strategy is applicable for new site builds or significant redesigns, ensuring a robust foundation for long-term SEO success.


1. Overall Site Architecture Philosophy

Our core philosophy is to create a logical, hierarchical, and user-centric site structure that clearly communicates topic authority to search engines while providing an intuitive navigation experience for users. This involves:

  • Clarity & Simplicity: Easy for both users and search engines to understand the site's thematic organization.
  • Topical Authority: Grouping related content to establish deep expertise in specific areas.
  • Efficient Crawl Path: Ensuring search engine bots can efficiently discover and index all important pages.
  • Scalability: A structure that can grow with the business without requiring complete overhauls.
  • User Experience (UX) First: A well-structured site naturally leads to better UX, which is a key ranking factor.

2. URL Structure Design

A clean, predictable, and keyword-rich URL structure is fundamental for SEO.

Principles:

  • Short & Descriptive: URLs should be concise and clearly indicate the page's content.
  • Keyword-Rich: Include primary keywords naturally where appropriate, avoiding keyword stuffing.
  • Static & Permanent: Avoid dynamic parameters where possible; use static URLs that don't change.
  • Lowercase: All URLs should use lowercase characters to prevent duplicate content issues.
  • Hyphens for Separators: Use hyphens (-) to separate words, not underscores (_).
  • Hierarchy Reflection: URLs should reflect the site's logical hierarchy.

Examples & Implementation:

  • Homepage: https://www.yourdomain.com/
  • Top-Level Categories (Silos):

* https://www.yourdomain.com/category-name/

* https://www.yourdomain.com/services/

* https://www.yourdomain.com/blog/

  • Sub-Categories/Sub-Services:

* https://www.yourdomain.com/category-name/sub-category-name/

* https://www.yourdomain.com/services/service-type/

  • Individual Pages (Products, Articles, Specific Services):

* https://www.yourdomain.com/category-name/sub-category-name/product-name/ (e-commerce)

* https://www.yourdomain.com/blog/article-title-with-keywords/ (blog post)

* https://www.yourdomain.com/services/service-type/specific-service-page/ (service detail page)

  • Informational/Static Pages:

* https://www.yourdomain.com/about-us/

* https://www.yourdomain.com/contact/

Actionable Steps:

  • Map out all existing and planned content to fit into this hierarchical URL structure.
  • Implement 301 redirects for any existing URLs that change during a redesign.
  • Ensure the CMS or platform automatically generates SEO-friendly URLs based on page titles, allowing for manual override.

3. Content Siloing Strategy

Content siloing is the practice of grouping related content thematically to build topical authority and improve search engine understanding of your site's expertise.

Benefits:

  • Improved Topical Relevance: Clearly signals to search engines the core topics of your site.
  • Enhanced Keyword Rankings: Strengthens the authority of specific keywords and phrases.
  • Better User Experience: Users can easily find related content, increasing engagement.
  • Efficient Link Equity Distribution: Directs internal link juice more effectively within relevant topics.

Implementation Methods:

  1. Directory-Based Silos (Physical Silos):

* Organize content into distinct folders or directories on your server. This is reflected in the URL structure.

* Example:

* /gardening/

* /gardening/vegetable-gardens/

* /gardening/flower-beds/

* /gardening/tool-reviews/

  1. Internal Linking Silos (Virtual Silos):

* Even if not strictly directory-based, a strong internal linking strategy can create virtual silos.

* Only link pages within the same silo to each other, or from deeper silo pages back up to the main silo hub page. Avoid linking across silos unless absolutely necessary (e.g., a relevant cross-silo blog post, but sparingly).

Actionable Steps:

  • Identify Core Topics: Determine the 3-7 main thematic categories your site covers. These will be your top-level silos.
  • Map Content to Silos: Categorize all existing and future content under these core topics.
  • Structure Navigation: Ensure your main navigation reflects these silos.
  • Implement Directory Structure: Configure your CMS to create physical directories for each silo.

4. Hub-and-Spoke Model Implementation

The Hub-and-Spoke model is an advanced siloing technique where a central, comprehensive "hub" page links out to multiple, more detailed "spoke" pages, which in turn link back to the hub. This reinforces the hub's authority on the overarching topic.

Benefits:

  • Deep Topical Authority: Establishes your hub page as the ultimate resource for a broad topic.
  • Improved Rankings for Hub Page: Boosts the hub page's ability to rank for broad, high-volume keywords.
  • Enhanced Spoke Page Rankings: Spoke pages benefit from the hub's authority, helping them rank for long-tail keywords.
  • Clear Information Architecture: Guides users and search engines through related content logically.

Implementation:

  1. Identify Hub Pages (Pillar Content):

* These are comprehensive, long-form content pieces (e.g., ultimate guides, deep dives) that cover a broad topic.

* They should target high-volume, competitive head terms.

* Example: "The Ultimate Guide to Digital Marketing"

  1. Develop Spoke Pages:

* These are more specific, detailed articles or pages that delve into sub-topics of the hub.

* They target more specific, long-tail keywords.

* Example (for "Digital Marketing" hub): "Beginner's Guide to SEO", "Mastering Social Media Advertising", "Email Marketing Best Practices", "Content Marketing Strategy".

  1. Internal Linking:

* Hub to Spokes: The hub page should link contextually to all relevant spoke pages using descriptive anchor text.

* Spokes to Hub: Each spoke page should link back to the main hub page, typically with anchor text related to the broad topic (e.g., "Learn more about Digital Marketing").

* Spokes to Spokes (within the same hub): Spoke pages can also link to other highly relevant spoke pages within the same hub to further connect the content and enhance user journey.

Actionable Steps:

  • Content Audit: Identify existing content that can serve as hubs or spokes, or identify gaps.
  • Content Creation Plan: Plan new hub and spoke content based on keyword research and user intent.
  • Implement Linking: Systematically create and update internal links as described above.

5. Internal Linking Strategy

Beyond siloing and hub-and-spoke models, a robust overall internal linking strategy is crucial for SEO.

Principles:

  • Anchor Text Diversity & Relevance: Use descriptive, keyword-rich anchor text. Avoid generic "click here." Vary anchor text to avoid over-optimization.
  • Contextual Linking: Link naturally within the body of the content when a relevant topic is mentioned.
  • Deep Linking: Link to pages that are deeper within the site hierarchy, not just top-level pages.
  • Link Depth: Ensure no important page is more than 3-4 clicks from the homepage.
  • User Journey Focus: Links should guide users to related and valuable content.

Implementation:

  • Main Navigation: Your primary navigation (header, footer, sidebar) should link to your most important category and service pages.
  • Breadcrumbs: Implement breadcrumb navigation (e.g., Home > Category > Sub-Category > Page) to improve user navigation and provide internal links.
  • Related Content/Posts: Use modules like "Related Articles," "You Might Also Like," or "Customers Also Bought" to link to relevant pages.
  • Authoritative Pages: Ensure your most authoritative pages (hubs, pillar content) receive a high volume of internal links.
  • New Content Promotion: When publishing new content, go back to relevant older pages and add contextual links to the new content.

Actionable Steps:

  • Audit Existing Links: Use a tool (e.g., Screaming Frog) to analyze current internal link structure.
  • Develop a Linking Matrix: For major content pieces, plan out which pages will link to them and from where.
  • Train Content Creators: Educate all content creators on internal linking best practices.

6. Technical SEO Specifications

A strong technical foundation is essential for search engines to efficiently crawl, index, and rank your site.

6.1. Crawlability & Indexability

  • Robots.txt:

* Purpose: Directs search engine crawlers, preventing access to irrelevant or duplicate content (e.g., admin pages, search results pages, thank you pages).

* Specification: Ensure it's correctly configured to allow access to all important content and block unimportant content. Test with Google Search Console's robots.txt tester.

  • XML Sitemaps:

* Purpose: Lists all important URLs on your site, helping search engines discover pages they might otherwise miss.

* Specification: Include all canonical, indexable pages. Exclude noindex pages. Update automatically with new content. Submit to Google Search Console and Bing Webmaster Tools. Use separate sitemaps for different content types (e.g., sitemap_pages.xml, sitemap_posts.xml, sitemap_products.xml).

  • Canonical Tags (<link rel="canonical">):

* Purpose: Specifies the preferred version of a page when duplicate or near-duplicate content exists (e.g., printer-friendly versions, pages with URL parameters).

* Specification: Implement self-referencing canonicals on all unique pages. Correctly point canonicals to the preferred URL for duplicate content.

  • Noindex/Nofollow Directives:

* Purpose: noindex prevents a page from being indexed; nofollow prevents link equity from being passed through a link.

* Specification: Use noindex on pages like search results, internal archives (if not unique), login pages, thank you pages, and thin content. Use nofollow for user-generated spam links or links to untrusted external sites.

  • Pagination Handling:

* Purpose: Manages series of pages (e.g., blog categories, product listings).

* Specification: Implement rel="next" and rel="prev" (though Google uses these as hints, not directives). Ensure individual paginated pages are indexable. A "view all" page, if feasible, can also be a good solution.

6.2. Site Speed & Performance (Core Web Vitals)

  • Image Optimization:

* Specification: Compress images (lossless or near-lossless). Use modern formats (WebP). Implement lazy loading. Specify image dimensions.

  • Browser Caching:

* Specification: Configure server-side caching to reduce load times for returning visitors.

  • Minification:

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

  • Server Response Time:

* Specification: Optimize backend code, database queries, and server configuration for fast response.

  • Content Delivery Network (CDN):

* Specification: Use a CDN for faster content delivery to users globally.

  • Core Web Vitals:

* Specification: Optimize for Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS) to meet Google's thresholds. Regularly monitor performance in Google Search Console and Lighthouse.

6.3. Mobile-Friendliness

  • Responsive Design:

* Specification: Implement a responsive design that adapts seamlessly to all screen sizes.

  • Viewport Meta Tag:

* Specification: Include <meta name="viewport" content="width=device-width, initial-scale=1"> in the HTML head.

  • Tap Target Sizes:

* Specification: Ensure interactive elements (buttons, links) are large enough and spaced appropriately for touchscreens.

6.4. Security (HTTPS)

  • SSL Certificate:

* Specification: Implement a valid SSL certificate (HTTPS) across the entire site.

  • 301 Redirects:

* Specification: Ensure all HTTP URLs 301 redirect to their HTTPS equivalents.

6.5. Structured Data (Schema Markup)

  • Purpose: Provides context to search engines about your content, enabling rich snippets in SERPs.
  • Specification: Implement relevant Schema.org markup using JSON-LD.

* Essential: Organization, Website, BreadcrumbList.

* Content-Specific: Article, Product, LocalBusiness, Service, FAQPage, Review, Recipe, etc.

  • Testing: Validate implementation using Google's Rich Results Test tool.

6.6. User Experience (UX) for SEO

  • Clear Navigation: Intuitive menus, search bar, and breadcrumbs.
  • Readability: Use clear fonts, sufficient line height, and break up text with headings, subheadings, and bullet points.
  • Internal Search Functionality: Provide an efficient search bar for users to find content quickly.
  • Accessibility: Ensure the site is accessible to users with disabilities (WCAG guidelines).

7. Redirect Strategy (for Redesigns/Migrations)

For existing sites undergoing a redesign or migration, a comprehensive 301 redirect strategy is critical to preserve SEO value.

Actionable Steps:

  • Full URL Crawl: Before any changes, crawl the entire existing site to get a list of all current URLs.
  • URL Mapping: Create a detailed 1:1 mapping of old URLs to new URLs.

* Old URL A -> New URL A (for pages that move or change names)

* Old URL B -> New relevant URL (for pages that are removed but have a similar new page)

* Old URL C -> Homepage (as a last resort for pages with no direct equivalent, use sparingly)

  • Implement 301 Redirects: Implement permanent (301)
gemini Output

SEO Site Architecture Design: Comprehensive Strategy

This document outlines a comprehensive SEO site architecture strategy, designed for optimal search engine crawlability, indexability, user experience, and topical authority. This architecture is suitable for new website builds or significant redesigns, ensuring a strong foundation for long-term organic growth.


1. Executive Summary

A robust SEO site architecture is the backbone of organic search success. It dictates how search engines crawl and understand your site's content, how users navigate, and how internal link equity is distributed. This strategy focuses on creating a logical, hierarchical structure that supports clear topical relationships through URL design, strategic internal linking, content siloing, and adherence to critical technical SEO specifications. The goal is to maximize visibility, authority, and user engagement.


2. Core Principles of SEO Site Architecture

The design of the site architecture will adhere to the following core principles:

  • User-Centricity: Easy and intuitive navigation for human users.
  • Crawlability & Indexability: Ensuring search engines can efficiently discover, crawl, and index all important content.
  • Topical Authority: Structuring content to demonstrate deep expertise in specific subject areas.
  • Scalability: An architecture that can grow and adapt as content expands.
  • Consistency: Uniform application of naming conventions, URL structures, and linking patterns.
  • Efficiency: Minimizing crawl depth and maximizing internal link equity flow.

3. URL Structure Design

The URL structure will be clean, descriptive, and hierarchical, reflecting the site's content organization.

  • Principle: Short, descriptive, keyword-rich, and hierarchical.
  • Format: https://www.yourdomain.com/category/subcategory/topic/post-name/

Specifications:

  1. Logical Hierarchy: URLs will mirror the site's information hierarchy. For instance, a product page might be /category/subcategory/product-name/.
  2. Keywords in URLs: Include relevant primary keywords in URLs where natural and concise. Avoid keyword stuffing.
  3. Readability: URLs should be easy for users to read and understand at a glance. Avoid cryptic characters or session IDs.
  4. Hyphens for Separators: Use hyphens (-) to separate words in URLs, not underscores (_).
  5. Lowercase: All URLs will be lowercase to prevent duplicate content issues (e.g., /Page vs. /page).
  6. No Trailing Slashes (Consistent): Decide on a consistent approach (e.g., always include trailing slash for directories, always omit for files) and enforce it with server redirects (301).
  7. Static URLs: Avoid dynamic parameters where possible, or ensure they are handled correctly with canonical tags or robots.txt.
  8. Conciseness: Keep URLs as short as possible while retaining descriptiveness and keyword relevance.
  9. Canonicalization: Implement canonical tags (<link rel="canonical" href="..." />) on pages with multiple URLs or similar content to designate the preferred version for search engines.

Examples:

  • Homepage: https://www.yourdomain.com/
  • Category Page: https://www.yourdomain.com/seo-strategy/
  • Subcategory Page: https://www.yourdomain.com/seo-strategy/local-seo/
  • Article/Service Page: https://www.yourdomain.com/seo-strategy/local-seo/google-my-business-optimization/
  • Product Page: https://www.yourdomain.com/products/electronics/laptops/gaming-laptop-model-x/

4. Internal Linking Strategy

A robust internal linking strategy is crucial for distributing "link equity" (PageRank), defining topical relationships, and improving user navigation.

  • Principle: Strategic and contextual linking to guide users and search engines through related content, reinforcing topical authority.

Specifications:

  1. Hierarchical Linking:

* Top-Down: Higher-level pages (categories, hubs) link down to sub-pages (subcategories, spokes).

* Bottom-Up: Sub-pages link up to their parent categories/hubs to reinforce their belonging.

* Lateral: Pages within the same subcategory or silo can link to each other if contextually relevant.

  1. Contextual Links (Body Content):

* Integrate relevant internal links naturally within the body text of articles and pages.

* Anchor text should be descriptive and keyword-rich, accurately reflecting the linked page's content.

* Avoid generic anchor text like "click here."

  1. Navigational Links:

* Main Navigation: Primary menu items will link to top-level categories and essential pages (e.g., Services, Blog, About Us, Contact).

* Footer Navigation: Include links to important utility pages (e.g., Privacy Policy, Terms of Service, Sitemap, key service areas).

* Breadcrumbs: Implement breadcrumb navigation on all pages below the homepage (e.g., Home > Category > Subcategory > Current Page) to enhance user navigation and provide clear hierarchical context.

  1. Related Posts/Products: Implement "related content" sections (e.g., "Related Articles," "You Might Also Like," "Customers Also Bought") to encourage further exploration and increase page views.
  2. XML Sitemaps:

* Create and maintain an XML sitemap (sitemap.xml) listing all indexable URLs.

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

* Ensure the sitemap is kept up-to-date with new content and removed pages.

  1. HTML Sitemaps: Consider an HTML sitemap for very large sites to provide an alternative user-friendly overview of the site structure.
  2. Link Depth: Aim to keep all important content within 3-4 clicks from the homepage. Deeper content can become harder for search engines to discover and for users to reach.
  3. Audit & Refresh: Regularly audit internal links for broken links, opportunities for new links, and anchor text optimization.

5. Content Siloing & Hub-and-Spoke Models

Content siloing and hub-and-spoke models are crucial for establishing topical authority and organizing content logically.

  • Principle: Grouping related content into distinct "silos" or "clusters" to signal deep expertise to search engines and provide a clear user journey.

5.1. Content Siloing

  • Definition: A content silo is a method of organizing a website's content into distinct, thematically related categories, where pages within a category heavily link to each other, but sparingly to pages outside their silo.
  • Benefits:

* Topical Authority: Concentrates link equity and relevance signals within a specific topic.

* Improved Rankings: Helps search engines understand the site's expertise, leading to better rankings for target keywords.

* Enhanced User Experience: Guides users through related content, improving engagement.

Methods of Siloing:

  1. Directory Siloing (Physical Silo):

* Uses URL structure to create clear directories (e.g., yourdomain.com/category/subcategory/).

* Each top-level category page acts as a "hub."

* All content related to that category lives within its directory.

* Example:

* /seo-strategy/ (Category Page/Hub)

* /seo-strategy/local-seo/ (Subcategory Page/Spoke)

* /seo-strategy/local-seo/google-my-business-optimization/ (Content Page/Spoke)

* /seo-strategy/technical-seo/ (Subcategory Page/Spoke)

* /seo-strategy/technical-seo/site-speed-optimization/ (Content Page/Spoke)

  1. Virtual Siloing (Internal Linking Silo):

* Content pages may not be in strict directories but are strongly linked together through internal links, creating a "virtual" silo.

* Less common for new sites, as directory siloing is generally stronger.

5.2. Hub-and-Spoke Model (Pillar/Cluster Content)

  • Definition: A specific implementation of siloing where a central "pillar" page (the hub) broadly covers a core topic and links out to multiple "cluster" pages (the spokes) that delve deeper into specific sub-topics related to the pillar. The cluster pages then link back to the pillar page.
  • Pillar Page (Hub):

* Comprehensive, high-level overview of a broad topic.

* Targets broad, high-volume keywords.

* Often long-form content (e.g., ultimate guides, comprehensive resources).

* Links to all related cluster content.

  • Cluster Pages (Spokes):

* Detailed content on specific sub-topics related to the pillar.

* Targets long-tail keywords.

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

* May link to other relevant cluster pages within the same hub.

Implementation Steps:

  1. Identify Core Topics: Determine the main themes your website will cover. These will become your silos/pillar topics.
  2. Map Sub-topics: For each core topic, identify 10-20 (or more) related sub-topics that can be developed into individual cluster pages.
  3. Create Pillar Pages: Develop comprehensive pillar pages for each core topic.
  4. Develop Cluster Content: Create detailed cluster content for each sub-topic.
  5. Strategic Linking:

Pillar page links to all* cluster pages.

Each cluster page links back to its parent pillar page*.

Cluster pages within the same silo* can link to each other if relevant.

Avoid linking across* silos directly from body content unless absolutely necessary and logically justified (e.g., a "see also" section at the end of an article).

Example Hub-and-Spoke Structure:

  • Pillar Page (Hub): "The Ultimate Guide to Digital Marketing"

* URL: yourdomain.com/digital-marketing-guide/

  • Cluster Pages (Spokes):

* "Beginner's Guide to SEO" -> yourdomain.com/digital-marketing-guide/seo-basics/ (links back to Pillar)

* "Email Marketing Best Practices" -> yourdomain.com/digital-marketing-guide/email-marketing-best-practices/ (links back to Pillar)

* "Social Media Strategy for Businesses" -> yourdomain.com/digital-marketing-guide/social-media-strategy/ (links back to Pillar)

* "PPC Advertising Fundamentals" -> yourdomain.com/digital-marketing-guide/ppc-fundamentals/ (links back to Pillar)


6. Technical SEO Specifications

Solid technical SEO ensures that search engines can efficiently access, crawl, interpret, and index your content.

6.1. Crawlability & Indexability

  • Robots.txt:

* A robots.txt file will be placed in the root directory to guide search engine bots.

* It will block known problematic URLs (e.g., internal search results, admin pages, staging environments) and prevent crawling of non-essential resources (e.g., certain CSS/JS files if they don't affect rendering).

* It will specify the location of the XML sitemap(s).

  • 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., pagination pages, internal search results).

* Use <meta name="robots" content="noindex, nofollow"> for pages that should neither be indexed nor have their links followed (e.g., sensitive internal documents).

* Default is index, follow so explicit declaration is only needed for non-default behavior.

  • XML Sitemaps:

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

* Submit to Google Search Console and Bing Webmaster Tools.

* For very large sites, consider breaking the sitemap into multiple smaller sitemaps (sitemap index file).

* Include lastmod and priority (though priority is less influential now).

  • Crawl Budget Optimization:

* Minimize redirect chains.

* Avoid orphan pages (pages with no internal links).

* Clean up broken links (404s).

* Ensure efficient server response times.

* Use noindex for low-value, duplicate, or thin content to conserve crawl budget for important pages.

6.2. Site Speed (Core Web Vitals)

  • Metrics: Focus on optimizing Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS).
  • Image Optimization:

* Compress images without significant loss of quality (e.g., using WebP format).

* Serve images at appropriate dimensions for the display.

* Lazy-load offscreen images.

* Use srcset and sizes attributes for responsive images.

* Specify width and height attributes to prevent layout shifts.

  • Caching: Implement browser caching and server-side caching (e.g., Redis, Varnish) where appropriate.
  • Minification: Minify HTML, CSS, and JavaScript files to reduce file sizes.
  • Compression: Enable GZIP or Brotli compression for server responses.
  • Server Response Time: Optimize database queries, server configurations, and choose a reliable hosting provider.
  • CDN (Content Delivery Network): Utilize a CDN for faster content delivery, especially for static assets, to users geographically distant from the server.
  • Render-Blocking Resources: Eliminate or defer render-blocking JavaScript and CSS.

6.3. Mobile-Friendliness

  • Responsive Design: Implement a responsive design that adapts seamlessly 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 HTML <head>.
  • Touch Targets: Ensure interactive elements (buttons, links) are sufficiently spaced for touch input.
  • Font Sizes: Use legible font sizes on mobile devices.

6.4. Security (HTTPS)

  • SSL Certificate: Implement an SSL certificate to serve the entire site over HTTPS.
  • Redirects: Configure 301 redirects from all HTTP versions of pages to their HTTPS counterparts.
  • Mixed Content: Ensure all resources (images, scripts, CSS) are loaded over HTTPS to avoid mixed content warnings.

6.5. Structured Data (Schema Markup)

  • Implementation: Use Schema.org markup (JSON-LD recommended) to provide search engines with explicit information about your content.
  • Key Types to Consider:

* Organization or LocalBusiness for company information


6. Internal Linking Strategy

A strategic internal linking structure is vital for distributing link equity, improving crawlability, and guiding users.

6.1. Key Principles

  • Contextual Relevance: Links within the main content body are most powerful. Anchor text should be descriptive, keyword-rich (where natural and not spammy), and relevant to the linked page.
  • Hierarchical Flow: Ensure links flow from higher-level pages (e.g., categories) to lower-level pages (e.g., products/articles).
  • Depth & Discovery: Ensure important pages are reachable within 3-4 clicks from the homepage.
  • User Experience: Links should genuinely help users find more information or complete a task.

6.2. Types of Internal Links

  1. Main Navigation:

* Purpose: Primary guide for users and crawlers to major sections.

* Implementation: Clear, concise, logical hierarchy. Avoid overly complex dropdowns if not well-implemented.

  1. Breadcrumbs:

* Purpose: Show users their current location within the site hierarchy and provide an easy path back to parent pages. Excellent for crawlability.

* Implementation: Implement on all sub-pages. Use structured data (Schema.org BreadcrumbList) for enhanced search visibility.

  1. Contextual Links (In-Content Links):

* Purpose: Most powerful for SEO. Pass authority and relevance signals.

* Implementation: Naturally integrate links within the body of articles and pages to related content. Use varied, descriptive anchor text.

  1. Footer Links:

* Purpose: For important but not primary pages (e.g., Privacy Policy, Terms of Service, Contact Us, About Us). Can also include links to top-level categories.

* Implementation: Keep the footer clean and functional.

  1. Related Posts/Products:

* Purpose: Enhance user engagement and discovery of relevant content.

* Implementation: Implement "Related Posts," "You Might Also Like," or "Customers Also Bought" sections.

6.3. Internal Linking Best Practices

  • Audit Regularly: Check for broken links, orphaned pages (pages with no incoming internal links), and pages with too many links.
  • Anchor Text Diversity: Use a variety of relevant anchor texts, including exact match, partial match, and branded terms.
  • Prioritize Important Pages: Link more frequently to your most important, high-value pages.
  • Avoid Over-Optimization: Don't stuff keywords into anchor text unnaturally.

7. Technical SEO Specifications

Technical SEO ensures that search engines can effectively crawl, render, and index your website.

7.1. Crawlability & Indexability

  • Robots.txt:

* Purpose: Directs search engine crawlers, indicating which parts of your site they should or should not access.

* Specification: Located at yourdomain.com/robots.txt. Ensure it doesn't block critical CSS, JavaScript, or content.

* Action: Regularly review and update to reflect site changes.

  • XML Sitemaps:

* Purpose: Provides

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);}});}