Independent review Bran Marketing

Sec. 01 Findings for the Web Development & Technical SEO Lead role

The page that sells SEO has no structured data.

Bran Marketing is the outsourced marketing department for industrial manufacturers, manufacturers' reps and wholesaler-distributors, and it is hiring a Web Development & Technical SEO Lead to build the web side of that department. On getbran.com, /web-design-seo carries no JSON-LD, and only 5 of 22 sitemap pages carry any. All 6 team pages still hold Wix placeholder copy, and Marsh & Moore, the build Bran presents as a case study, has 0 of 36 pages with a meta description. None of that is a backlog problem, so the department should start with a build standard, not a backlog: what I'd fix in week one, a line card you can filter, and the 90-day standard I'd run.

  1. 5 / 22

    getbran.com sitemap pages with any JSON-LD; none on /web-design-seo

  2. 6 / 6

    team pages carrying the Wix placeholder sentence; 4 of 6 URLs name a different person

  3. 0 / 36

    Marsh & Moore pages with a meta description, JSON-LD or an OG tag

  4. 63

    <script> tags in 1,275,015 bytes of homepage HTML; no Lighthouse (PSI quota 429), so weight stands in

Scope getbran.com (47 pages + llms.txt) · marshmoore.com (36) · timmorales.com (25) · armstrong-weatherly.com (30)Method page source, robots.txt, every sitemap, llms.txtPlatforms Wix ×3 · WordPress/Divi ×1Sampled 2026-09-22 13:23–13:37 UTCIndependent not affiliated with Bran Marketing

Table 01 Coverage

Four sites, one pattern

Medians across the sampled pages. No Lighthouse scores: PageSpeed Insights returned HTTP 429 (daily quota) for all four homepages, so HTML bytes, script counts and TTFB stand in.

SitePagesMeta desc.JSON-LDAny OGImg altHTML B, medianScriptsTTFB
getbran.com Wix4732 / 4727 / 4746 / 4798.5%1,008,942620.11 s
marshmoore.com WordPress, Divi v.4.27.4360 / 360 / 360 / 3629.3%216,964510.52 s
timmorales.com Wix2513 / 258 / 25 Wix-auto25 / 2585.2%860,331631.12 s
armstrong-weatherly.com Wix3018 / 306 / 30 Wix-auto30 / 3088.0%692,444611.31 s

HTML bytes decoded bodyTTFB final hop, from an AWS host, location-dependentgetbran.com homepage 1,275,015 B HTML · 211,428 B on the wire · 63 script tags · TTFB 0.101 s · title 83 chars · description 167 chars

Findings five plates

What I'd fix in week one

Plate 01 Own house

Team pages are still on template URLs

All 6 team pages contain the Wix sentence “This is placeholder text. To change this content, double-click on the element and click Change Content.” Four of the six slugs name a different person: /team/brian-chung renders Alicia Branham, /team/ashley-amerson renders Marcie Flatt. /team is titled “Team (List) | Bran Marketing”, has no H1 and links to none of the six. 0 of 6 have a meta description.

What I'd ship in week one Real-name slugs with 301s from the old ones, placeholder blocks removed, a description and Person schema per page, and links from /team.

Plate 02 Coverage

The selling pages are silent

5 of 22 sitemap pages carry any JSON-LD: the homepage, /manufacturers, /the-bran-method, /marketing-consulting-training and /marshmoorecasestudy. The service and audience pages carry none: /web-design-seo, /manufacturers-reps, /wholesalers-distributors, /small-businesses, /the-bran-marketing-department, /3d-modeling-product-visualization. The blog is the exception: 15 of 15 sampled posts have BlogPosting, 4 with HowTo.

What I'd ship in week one One Service + BreadcrumbList block on every service and audience page, Organization declared once, the homepage graph deduplicated (WebSite appears twice).

Plate 03 Signals

One post at three URLs, a members area in the sitemap

One post is live at three self-canonical URLs with the same title and H1: …-a-comprehensive-guide, …-a-comprehensive-guide-1 and /post/top-social-media-for-your-business. Every sampled post has two H1s (“BRANBLOG BY BRAN MARKETING” plus the title); 34 of 56 posts share the lastmod 2026-08-07. /groups, /forum and /members (H1 “BRAN MEMBER ONLY AREA”) are indexable and in the pages sitemap. llms.txt is present; /about-1 is a clean 404 with no internal links.

What I'd ship in week one One canonical URL for the post with 301s from the other two, one H1 in the blog template, noindex on the community pages, and a title lint: 12 of 47 titles pass 60 characters, the homepage's is 83.

Plate 04 Clients

Marsh & Moore: the case-study build has no meta layer

marshmoore.com (WordPress, Divi v.4.27.4) is the build Bran presents at /marshmoorecasestudy. Across 36 sampled pages: 0 meta descriptions, 0 JSON-LD, 0 Open Graph tags, 285 of 403 images with empty alt (29.3% coverage). Leftovers are live and indexable: /lines-represented/ (H1 “Portfolio Grid” / “No Results Found”), /sample-mfg/, /awl_filter_gallery/manufacturers-duplicate/, /home/ duplicating /, /contactus/ beside /contact-us/. It is also the lightest site here: 216,964 bytes of HTML at the median, 51 script tags, 0.52 s TTFB.

What I'd ship in week one Description, Open Graph and Organization + BreadcrumbList schema from one template hook, an alt-text pass, 301s or noindex for the leftovers, author archives out of the sitemap.

Plate 05 Clients

Three line cards, none you can filter by what a buyer needs

Marsh & Moore's /manufacturers/: 27 logo tiles behind a Divi filter (All/Commercial/Residential/Waterworks/Irrigation), 28 of 32 images with empty alt, no PDF, a “Request Our Line Card!” form; 4 of 30 manufacturer pages unlinked from the grid. Tim Morales & Associates runs its line card through Wix Stores: 25 manufacturers behind a “Price $1–$250” slider, territory codes in slugs (-ms-la-al-wfl), /product-page/copy-of-franke-al-wfl rendering “Fluidmaster”. Armstrong-Weatherly's /line-card: title “2024 LINECARD”, H1 “2026 LINE CARD”, 13 manufacturers, 1 PDF, no filter or search, 8 of 21 manufacturer pages missing from it, 12 “I'm a product” placeholders in the sitemap since 2016-06-10.

What I'd ship in week one The prototype below: a line card with the facets a buyer uses, a spec sheet per product, and Product + DigitalDocument schema, on WordPress or Wix.

Method

166 read-only GET requests on 2026-09-22 between 13:23:32Z and 13:36:55Z, Chrome user agent, at least 0.6 s apart: robots.txt and every sitemap for all four sites, then 47 getbran.com pages plus llms.txt, 36 on marshmoore.com, 25 on timmorales.com, 30 on armstrong-weatherly.com. HTML bytes are the decoded body; TTFB is the final hop from an AWS host, so location-dependent. No Lighthouse or Core Web Vitals scores: PageSpeed Insights answered HTTP 429 for all four homepages.

Sec. 02 Prototype

A line card you can filter.

Three of the four sites publish a line card. None lets a buyer narrow it by size, material or lead time, and none marks up a spec sheet as structured data. This is the page type Bran's clients need most, built here as a static prototype: 18 fictional products from 6 fictional manufacturers, facets, search, a spec table per product, and Product + DigitalDocument JSON-LD that rewrites itself as you click. Everything in the demo is invented; no real Bran client products appear.

Schema wiring: Product links to DigitalDocument via subjectOf, to Offer via offers, and sits inside a BreadcrumbList Productmpn · additionalProperty DigitalDocumentapplication/pdf Offeravailability · lead time · no price BreadcrumbListline card › category › product subjectOfofferspage
The graph every spec-sheet page emits. Same shape on WordPress or Wix.

Ridgeline Industrial Sales Line card

Fictional demo data facets: AND across groups, OR within
Manufacturer
Manufacturer
Category
Category
Size range
Size range
Body material
Body material
Lead time
Lead time

18 of 18 products shown

Bronze ball valve, two-piece, full port

CVW-B150 · Cascade Valve Works · Valves · represented by Ridgeline Industrial Sales (fictional)

Two-piece bronze ball valve with a full-port bore, PTFE seats and a lockable lever handle for potable water and general service.

Specifications, fictional demo values
AttributeValue
ManufacturerCascade Valve Works
CategoryValves
Size range½–2 in
Body materialBronze / brass
Lead timeIn stock
Pressure class600 WOG / 150 SWP
End connectionThreaded NPT
SeatPTFE
StemBlowout-proof, adjustable packing
HandleLever, lockable
ListingLead-free (demo)
Download spec sheet (PDF)

Demo link: this catalog is fictional, so there is no PDF behind it. On a real build it points at the manufacturer’s sheet stored with the product, and the same URL is the DigitalDocument below.

JSON-LD for the selected product updates live

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Product",
      "@id": "https://ridgeline.example/line-card/valves/cvw-b150/#product",
      "url": "https://ridgeline.example/line-card/valves/cvw-b150/",
      "name": "Bronze ball valve, two-piece, full port",
      "mpn": "CVW-B150",
      "sku": "RIS-CVW-B150",
      "description": "Fictional demo product for a line-card prototype. Two-piece bronze ball valve with a full-port bore, PTFE seats and a lockable lever handle for potable water and general service.",
      "category": "Valves",
      "brand": {
        "@type": "Brand",
        "name": "Cascade Valve Works"
      },
      "manufacturer": {
        "@type": "Organization",
        "name": "Cascade Valve Works"
      },
      "material": "Bronze / brass",
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "Size range",
          "value": "½–2 in"
        },
        {
          "@type": "PropertyValue",
          "name": "Body material",
          "value": "Bronze / brass"
        },
        {
          "@type": "PropertyValue",
          "name": "Lead time",
          "value": "In stock"
        },
        {
          "@type": "PropertyValue",
          "name": "Pressure class",
          "value": "600 WOG / 150 SWP"
        },
        {
          "@type": "PropertyValue",
          "name": "End connection",
          "value": "Threaded NPT"
        },
        {
          "@type": "PropertyValue",
          "name": "Seat",
          "value": "PTFE"
        },
        {
          "@type": "PropertyValue",
          "name": "Stem",
          "value": "Blowout-proof, adjustable packing"
        },
        {
          "@type": "PropertyValue",
          "name": "Handle",
          "value": "Lever, lockable"
        },
        {
          "@type": "PropertyValue",
          "name": "Listing",
          "value": "Lead-free (demo)"
        }
      ],
      "subjectOf": {
        "@type": "DigitalDocument",
        "@id": "https://ridgeline.example/spec-sheets/cvw-b150.pdf",
        "name": "CVW-B150 spec sheet (fictional)",
        "url": "https://ridgeline.example/spec-sheets/cvw-b150.pdf",
        "encodingFormat": "application/pdf",
        "inLanguage": "en",
        "about": {
          "@id": "https://ridgeline.example/line-card/valves/cvw-b150/#product"
        }
      },
      "offers": {
        "@type": "Offer",
        "availability": "https://schema.org/InStock",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "minValue": 1,
          "maxValue": 2,
          "unitCode": "DAY"
        },
        "itemCondition": "https://schema.org/NewCondition",
        "seller": {
          "@type": "Organization",
          "name": "Ridgeline Industrial Sales",
          "url": "https://ridgeline.example/"
        }
      }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Line card",
          "item": "https://ridgeline.example/line-card/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Valves",
          "item": "https://ridgeline.example/line-card/valves/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Bronze ball valve, two-piece, full port",
          "item": "https://ridgeline.example/line-card/valves/cvw-b150/"
        }
      ]
    }
  ]
}

Also injected live into the page as <script type="application/ld+json" id="lc-ld-live">. Offer carries availability and lead time but no price: valid schema.org, honest for a rep firm, and it won't pretend to be a store.

Ships on

The same standard on WordPress or Wix

Same fields, same facet names, same JSON-LD shape on either platform. That shared shape is the build standard.

WordPress

Custom post type + taxonomies

  • Content model a product post type; taxonomies for manufacturer, category, size range, material and lead time; specs as post meta; the spec sheet as an attachment on the product.
  • Facets FacetWP or a custom WP_Query with tax_query behind this same checkbox UI, filter state in the query string so a filtered view is shareable.
  • URLs /line-card/{category}/{product}/ via rewrite rules; manufacturer and category archives become landing pages.
  • Schema one wp_head hook builds Product, DigitalDocument, Offer and BreadcrumbList from post meta, so no editor touches code.
  • Performance server-rendered list, page cache, lazy images; only the facet script ships.

Wix

CMS collection + dataset filters

  • Content model a Products collection with reference fields to Manufacturers and Categories, tags for size range and material, a Document field for the PDF.
  • Facets a dynamic list page with dataset filters, or Velo wixData.query().hasSome() behind this checkbox UI; Wix Search for the text box.
  • URLs dynamic item pages at /line-card/{slug}; category pages from the Categories collection, picked up by the sitemap automatically.
  • Schema structured-data variables in the dynamic page's SEO settings, or wixSeo.setStructuredData() in Velo for the Product + DigitalDocument graph.
  • Performance the platform already ships 61 to 63 script tags per page at the median across the three Wix sites sampled, so keep sections and apps per page lean.

Sec. 03 Plan

Ninety days: a standard first, then the first build under it.

The findings above are not a backlog to grind through. They are what a build standard prevents: template leftovers, pages without schema, line cards that can't be filtered. So the department starts by writing the standard, uses the own-house fixes as its first test, then ships one client build the same way.

  1. Days 1–30

    Audit and baseline

    • Access: Search Console, GA4, Wix and WordPress admin, DNS. One URL inventory from robots.txt and every sitemap, this page's method made repeatable.
    • Baseline by page type: schema coverage, title and description lengths, H1 count, HTML weight, script count, TTFB; Lighthouse and CrUX when quota allows.
    • Own-house fixes: team slugs and placeholder copy, one canonical URL for the triple post, Service + BreadcrumbList on all 22 sitemap pages, noindex on /groups, /forum and /members, one H1 per post.
    • Deliverable: a one-page before/after in the same numbers as this review.
  2. Days 31–60

    Build standard

    • Templates for line card, manufacturer page and product/spec-sheet page on WordPress and Wix, with this prototype's facet UI.
    • Schema library: Organization, Service, BreadcrumbList, Product, DigitalDocument, Offer, BlogPosting, Person, validated in QA.
    • Migration checklist: URL inventory, redirect map, 404 sweep, alt text, metadata, sitemap and robots, launch QA.
    • Performance budget per template and a launch checklist: viewport, canonical, one H1, description, schema, alt coverage.
    • Estimating and time-tracking template so web work fits inside client credits and account leads see where hours go.
  3. Days 61–90

    First build under the standard

    • One client build or migration end to end: scope, estimate, build, QA, launch, redirects verified in Search Console.
    • Process documented where the team works: templates, checklists, handoff notes, a written definition of done.
    • Handoff: designers and account managers can brief web work without a developer in the room.
    • Retro against the posting's criteria, with numbers; the standard revised from what the build taught.

How the posting says I'd be measured, and what I'd show

Technical performance
The baseline numbers move: own-house schema coverage from 5 of 22 pages to all 22, team pages off template slugs, weight tracked per template.
Communication
A one-page weekly note: what shipped, what's blocked, what it cost in hours. Findings written like this page, evidence first.
Reliability
Hours tracked against estimates, dates kept, redirects checked in Search Console after every launch.
Team fit
A small team where design leads the work: I build what the designers design, brief in plain language, and say what's hard before it's late.

Sec. 04 About

Said plainly: what I bring.

  1. Seven years of web development, WordPress since 2019. Independent contractor: I scope, estimate, track hours and ship.
  2. A production Wix build for K-WAV (now Total LED), a Direct-View LED display manufacturer: spec-sheet product-line pages, forms, and rebrand-migration planning. k-wav.com
  3. 14,000+ SKU catalog migrations at Universal Wholesale / United Textile, with redirects, data cleanup and QA. mousabatarseh.com/changeatlasmousabatarseh.com/SEO-Tools
  4. Schema/JSON-LD and Core Web Vitals into the high 90s. Two more reviews in this format: mousabatarseh.com/salt-reviewmousabatarseh.com/oakwood-review