---
title: "Choose the right schema markup type so each page qualifies for its rich result"
description: "Match Schema.org types to page content, include the properties Google reads, and test JSON-LD before deployment so rich results stay eligible."
canonical: "https://scalewithsearch.com/articles/schema-markup-types-guide"
date: "2026-03-20"
modified: "2026-09-25"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# Choose the right schema markup type so each page qualifies for its rich result.

A developer adds Organization and WebPage markup to every template and moves on. The product pages, the event pages, and the job listings get nothing more specific. Those pages never show price, date, or availability in search results, because nothing on them says what they are in a form Google can read.

The Schema.org vocabulary has roughly 800 types, from recipes and events to medical conditions and software applications. Two decisions control whether your structured data produces search visibility or sits unused in the page code. The first is which type you choose. The second is whether you fill in the properties that type needs.

Google supports only a subset of types for rich results, such as Product, Recipe, Event, JobPosting, LocalBusiness, and Article. Markup for an unsupported type can still add meaning, but it earns no visual feature. Markup for a supported type with missing or wrong properties fails validation and loses eligibility, even if the syntax is valid.

This guide covers the high-impact types, when to use each, the properties each needs, implementation rules, testing steps, and the common errors.

## Learn how structured data works

Structured data describes page content in a standard vocabulary. Search engines parse it more accurately than they can infer meaning from HTML alone.

There are three formats:

| Format | How it works | Status |
|---|---|---|
| JSON-LD | A JSON object inside a `script` element of type `application/ld+json` | Google recommends it |
| Microdata | Inline HTML attributes such as `itemscope` and `itemprop` | Harder to maintain; rarely used for new work |
| RDFa | Another set of inline attributes | Uncommon for SEO |

JSON-LD keeps structured data apart from the HTML. You can add, update, and debug it without a change to the page layout. All examples in this guide use JSON-LD. On the page, the object sits inside a script element:

```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Blue Widget",
  "description": "High-quality widget",
  "image": "https://example.com/widget.jpg",
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD"
  }
}
</script>
```

Google's documentation for each rich result is the authority on required properties, and it changes. The property lists below give the working set for each type. Confirm the current required list in Google's documentation for the feature before you ship. For a deeper treatment of JSON-LD in modern front-end frameworks, see [JSON-LD structured data for developers](/articles/structured-data-jsonld-developers).

## Match each page type to its schema type

### Product

Use Product on e-commerce product pages, SaaS product listings, and service offers with a price. The rich result can show price, availability, rating, and review count.

Include `name`, `image`, and `offers` (a nested Offer with price and availability). Add `aggregateRating`, `review`, `brand`, and `description` when the data exists. Google treats rating and review data as a condition for some product features, so include it when you have real reviews.

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Blue Widget Pro",
  "image": "https://example.com/widget-pro.jpg",
  "description": "Professional-grade widget for advanced users",
  "brand": {
    "@type": "Brand",
    "name": "Widget Co"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/widget-pro",
    "priceCurrency": "USD",
    "price": "149.99",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "312"
  }
}
```

The price values in these samples are fictional placeholders for a fictional product. Your markup must carry the price the page shows. The [e-commerce schema markup guide](/articles/ecommerce-schema-markup) covers variants, merchant listings, and catalog-scale generation.

### Recipe

Use Recipe on recipe pages. The rich result is a recipe card with cook time, rating, and calories.

Google requires only `name` and `image`. A recipe card without ingredients and instructions has little value, so treat `recipeIngredient` and `recipeInstructions` as required in practice. Add `prepTime`, `cookTime`, and `totalTime` as ISO 8601 durations, plus `recipeYield`, `nutrition`, and `aggregateRating` when you have them.

```json
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Classic Chocolate Chip Cookies",
  "image": "https://example.com/cookies.jpg",
  "author": {
    "@type": "Person",
    "name": "Jane Baker"
  },
  "prepTime": "PT15M",
  "cookTime": "PT12M",
  "totalTime": "PT27M",
  "recipeYield": "24 cookies",
  "recipeIngredient": [
    "2 cups flour",
    "1 cup butter",
    "3/4 cup sugar",
    "2 eggs",
    "2 cups chocolate chips"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "Preheat oven to 375°F."
    },
    {
      "@type": "HowToStep",
      "text": "Mix butter and sugar until creamy."
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "87"
  }
}
```

### Article

Use Article, or its subtypes NewsArticle and BlogPosting, on blog posts, news articles, and editorial pages. The markup helps Google show the right headline, image, date, and author.

Google's Article documentation lists no strictly required properties. Include `headline`, `image`, `datePublished`, `dateModified`, and `author`. Add `publisher` with a logo and `description` where they apply.

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Complete Guide to Schema Markup",
  "image": "https://example.com/article-image.jpg",
  "author": {
    "@type": "Person",
    "name": "Jane Author"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Publishing",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2026-02-08",
  "dateModified": "2026-02-08"
}
```

### LocalBusiness

Use LocalBusiness on pages for businesses with a physical location, such as restaurants, stores, and service providers. The markup supports local results and knowledge panels with hours, location, and reviews.

Use the most specific subtype in `@type`, such as `Restaurant` or `Store`. Include `name`, `address`, and `telephone`. Add `openingHours`, `geo`, `priceRange` (a symbol level such as `$$`), `aggregateRating`, and `image` when you have them.

```json
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Joe's Pizza",
  "image": "https://example.com/restaurant.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10001",
    "addressCountry": "US"
  },
  "telephone": "+1-212-555-0100",
  "openingHours": "Mo-Su 11:00-22:00",
  "servesCuisine": "Italian",
  "priceRange": "$$",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "287"
  }
}
```

### Event

Use Event on pages for conferences, concerts, webinars, and workshops. The rich result can show date, time, location, and ticket availability.

Include `name`, `startDate` in ISO 8601 format, and `location` (a physical Place or a virtual location). Add `endDate`, `image`, `description`, `offers` for tickets, `performer`, and `organizer`.

```json
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "SEO Conference 2026",
  "startDate": "2026-06-15T09:00:00-05:00",
  "endDate": "2026-06-17T17:00:00-05:00",
  "location": {
    "@type": "Place",
    "name": "Convention Center",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "456 Conference Blvd",
      "addressLocality": "San Francisco",
      "addressRegion": "CA",
      "postalCode": "94102",
      "addressCountry": "US"
    }
  },
  "image": "https://example.com/event.jpg",
  "description": "Annual SEO industry conference with keynotes from practitioners",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/tickets",
    "availability": "https://schema.org/InStock"
  }
}
```

When the event is over, update or remove the markup. An event listed as upcoming after its date misleads users.

### JobPosting

Use JobPosting on job listing pages and career sections. Listings can appear in Google's job search experience.

Include `title`, `description`, `datePosted`, `hiringOrganization`, and a location. Add `baseSalary`, `employmentType`, and `validThrough` (the application deadline). For a fully remote job, do not write "Remote" as a city. Use `jobLocationType` with the value `TELECOMMUTE`, and state where applicants may live with `applicantLocationRequirements`.

```json
{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Senior SEO Manager",
  "description": "Lead SEO strategy for enterprise clients...",
  "datePosted": "2026-02-01",
  "validThrough": "2026-03-15",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Digital Agency Co",
    "sameAs": "https://example.com"
  },
  "jobLocationType": "TELECOMMUTE",
  "applicantLocationRequirements": {
    "@type": "Country",
    "name": "US"
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": {
      "@type": "QuantitativeValue",
      "minValue": 90000,
      "maxValue": 130000,
      "unitText": "YEAR"
    }
  }
}
```

The salary values are placeholders that show the nesting. Your markup must carry the range the listing states.

## Know which features Google restricted

Two formerly popular rich results no longer work for most sites.

**FAQ rich results.** Since August 2023, Google shows FAQ rich results only for well-known, authoritative government and health websites. FAQPage markup is still valid Schema.org, and other systems can read it. Most commercial sites no longer get the expanded questions in Google results from it. Use FAQPage only for real question-and-answer content, never to push more text into a result:

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is Schema markup?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Schema markup is a structured data vocabulary that helps search engines understand page content."
      }
    }
  ]
}
```

**HowTo rich results.** Google removed HowTo rich results from mobile results in August 2023 and from desktop results in September 2023. The HowTo type stays valid in Schema.org, with `name`, `step`, `totalTime`, `tool`, `supply`, and per-step `image`. Add it only if another consumer of your data uses it. Do not expect a Google feature from it.

## Follow six implementation rules

**Give each page one primary type.** A product page gets Product, not Product plus Recipe plus Event. Supporting types such as BreadcrumbList, Organization, and WebPage can sit beside the primary type. Related types can nest inside it. A Product can carry Review data. An Article can contain an FAQPage section when the page really has one. Unrelated combinations, such as Event markup on a product page, confuse parsers.

**Use the most specific type.** LocalBusiness has subtypes such as `Restaurant`, `AutoRepair`, and `LegalService`. The specific subtype can unlock type-specific features.

**Include every required property.** A missing required property makes the item ineligible. Check each template in the Rich Results Test.

**Add recommended properties when the data exists.** Ratings, images, and prices make the result more useful and more visible.

**Keep the data accurate.** Wrong prices, closed locations, and past events listed as upcoming mislead users. They can also cost the page its eligibility.

**Mark up only visible content.** Structured data must describe content that users can see on the page. Markup for hidden content violates Google's guidelines.

For catalogs and blogs, generate markup from templates and data, not by hand. A markup generator can speed up the first version, but you still need to validate and adapt its output. The [structured data implementation guide](/articles/structured-data-implementation) covers template-driven rollout.

## Test before and after deployment

Two validators check different things. The Rich Results Test at `https://search.google.com/test/rich-results` accepts a URL or a code snippet. It shows which Google rich results the page is eligible for, and it lists errors. The Schema Markup Validator at `https://validator.schema.org/` checks the syntax against the full Schema.org vocabulary. After deployment, the rich result reports in Google Search Console show eligibility and errors across indexed pages.

Follow these steps for each new template:

1. Add the markup in a staging environment.
2. Test it in the Rich Results Test.
3. Fix every error and review every warning.
4. Deploy to production.
5. Monitor the Search Console rich result reports for new errors.
6. Confirm that the rich result appears in search, which can take days to weeks.

Google must recrawl the page, process the markup, and decide eligibility before a rich result appears. Submit an updated sitemap in Search Console to help discovery.

Incorrect markup does not directly lower rankings. It can hurt indirectly: misleading data, such as a wrong price, damages the user experience. Google can also remove rich result eligibility, or issue a manual action, for markup that violates its policies.

## Fix the common errors

| Error | Example | Correction |
|---|---|---|
| Wrong type | Recipe markup on a blog post that mentions food but is not a recipe | Use Article |
| Missing required property | Product without `offers`; Recipe without `image` | Add the property, or remove the markup |
| Invalid value format | A date not in ISO 8601 (`YYYY-MM-DD`); a URL without its protocol, such as `example.com` | Use `2026-02-08` and `https://example.com` |
| Broken nesting | An Offer outside its Product; a PostalAddress outside its Place | Follow the nesting in the Schema.org type definition |
| Duplicate items | Two separate Product objects for one product | Merge them into one object; use ItemList for a product collection |

Video pages have their own type, VideoObject, with its own search features. The [video SEO guide](/articles/video-seo-search-features) covers that markup.


## Related: SEO by role

- [Migrate a site without losing organic traffic using a developer's checklist](/articles/site-migration-seo-checklist)
- [Real estate SEO: Brokerage, team, and agent roles.](/articles/seo-real-estate-roles)
- [AI for real estate agents: Keep a file for each lead.](/articles/ai-for-real-estate-agents)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
