[ Home / About / Contact / WOTM ] [ b ] [ wd / ui / css / resp ] [ seo / serp / loc / tech ] [ sm / cont / conv / ana ] [ case / tool / q / job ]

/tech/ - Technical SEO

Site architecture, schema markup & core web vitals
Name
Email
Subject
Comment
File
Password (For file deletion.)
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

File: 1792710219623.jpg (158.62 KB, 1024x1024, img_1792710211839_s3uhd79b.jpg)ImgOps Exif Google Yandex

9ad69 No.2375[Reply]

tried stripping out all the non-essential properties from the product schema but the script's still bloating the initial payload by about 40kb. it's making the lcp jump because the parser is choking on the massive string of nested object data.
{"@context": "https://schema.org","@type": "Product","additionalProperty": [ ... ]}

anyone found a way to prune these dynamically without breaking the rich result validation?

9ad69 No.2387

File: 1792918333747.jpg (302.64 KB, 1024x1024, img_1792918317498_1vslpx0y.jpg)ImgOps Exif Google Yandex

>>2375
>the parser is choking on the massive string of nested object data

did this exact same thing with a client's huge catalog last month and had to just hard-delete the entire additionalproperty array because it was killing our mobile scores. tbh i just moved that extra metadata into a separate fetch call so the initial html stays light.

9ad69 No.2400

>>2387 moving that stuff to a separate fetch is smart but just make sure you dont lose the data for crawlers that dont execute much js since those rich snippets wont show up without it in the initial html.



File: 1793125627978.jpg (210.06 KB, 1024x1024, img_1793125619288_myr2r1kl.jpg)ImgOps Exif Google Yandex

f2ec2 No.2399[Reply]

I've been looking at our latest build and the service worker is grabbing way too much during the initial install. It's trying to cache every single chunk from the build manifest instead of just the critical path assets.
>It's fine as long as the user has a fast connection.
Great Risky for anyone on mobile data or shaky subway wifi.

self.addEventListener('install', (event) => {event.waitUntil(caches.open('v1').then((cache) => {return cache.addAll(['/', '/main.js', '/styles.css']);}));});


File: 1792880822855.jpg (220.61 KB, 1024x1024, img_1792880814608_vd5h2813.jpg)ImgOps Exif Google Yandex

95514 No.2383[Reply]

people keep adding every single possible property to their product markup thinking it's some kind of magic boost. i'm seeing so many clients with massive blocks of junk data that don't even apply to the actual item. it's just pure noise for the parser and makes debugging errors a nightmare when something actually breaks. if you aren't using the specific value, don't include the key at all. keeping the json-ld clean is way more important than trying to guess which extra field might trigger a rich snippet.
"additionalProperty": [{"name": "color", "value": "blue"},{"name": "size", "value": "large"}]

it's better to stick to the basics and let the search engine do its job without the clutter. anyone else seeing massive schema files from these big e-commerce sites?

95514 No.2391

File: 1793011939383.jpg (270.77 KB, 1024x1024, img_1793011923366_eh1xqcx8.jpg)ImgOps Exif Google Yandex

>>2383
The color and size properties belong in their own dedicated fields rather than buried inside an additionalProperty array if you want any chance of getting those specific attributes to surface correctly in search results.

95514 No.2392

>>2383
had a client doing this exact thing with their catalog and it turned our crawler logs into pure garbage. spent three hours debugging a simple validator error because some marketing intern added every possible attribute they could find in a documentation list.

never trust a marketing person with json-ld

95514 No.2398

File: 1793113749118.jpg (171.89 KB, 1024x1024, img_1793113734059_sq08tmy9.jpg)ImgOps Exif Google Yandex

>>2392
marketing interns are literally the reason i have high blood pressure. they treat schema like a wish list instead of actual data.



File: 1793040028329.jpg (230.21 KB, 1024x1024, img_1793040020476_st8nf26m.jpg)ImgOps Exif Google Yandex

c61e2 No.2393[Reply]

I was looking at some old e-commerce builds yesterday and noticed how much we overlook the impact of massive alt text strings on the critical path. Everyone focuses on making sure the descriptive text is there for accessibility, which is obviously right, but stuffing paragraphs into that attribute can actually mess with your parser performance. It adds extra bytes to the initial HTML payload before the browser even gets to the actual image resource. I've seen cases where a single product gallery had several kilobytes of text just sitting inside alt tags. It doesn't show up in standard lighthouse scores for layout shift, but it is literally more data for the browser to process during that first render. We should try an experiment this week on any site with heavy media. Pick one page and strip out all the non-essential descriptive fluff from the alt attributes while keeping just the core identifiers. Check if there's any measurable difference in the time to first byte or document completion. It is a small tweak, but it helps keep the DOM light.


File: 1792667485547.jpg (147.7 KB, 1024x1024, img_1792667477383_4csqd5ks.jpg)ImgOps Exif Google Yandex

070ed No.2371[Reply]

Thinking about moving from microservices to agents feels like another massive headache for observability. The idea is basically that we'll stop decomposing functionality and start decomposing decisions with LLMs.
>decomposing decisions, much like microservice architectures decompose functionality
It sounds exactly like the chaos we had when everyone jumped on the microservices bandwagon without a plan. If we're moving from simple chains to graphs or even raw code, how are we supposed to trace anything? I can already see the latency issues and the nightmare of debugging nondeterministic failure modes in production. It's probably going to be just another layer of complexity to manage.

https://www.infoq.com/articles/agentic-ai-architecture-article-series/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

070ed No.2388

>>2371
tracing is actually easier once you have structured logs for every agent step instead of just hunting through distributed service calls.



File: 1792422819668.jpg (179.58 KB, 1024x1024, img_1792422810462_pvmip00c.jpg)ImgOps Exif Google Yandex

c3908 No.2358[Reply]

another day, another way to slow down everything with extra checks. they're talking about running regex for known signatures and then some semantic detector on top of that. it's all fine until you realize the normalizer has to collapse whitespace and decode base64 before anything even gets to the model. adding a risk score between 0.0 and 1.0 sounds nice in theory, but i can't imagine how much this is going to tank our response times. if we're doing pii scanning and sanitizing everything at the boundary, we might as well just not use ai skip the whole ragi process entirely. honestly, it feels like a lot of overhead for something that's mostly just trying to catch leetspeak or bad formatting. anyone actually running a production path through bedrock with this kind of middleware yet?

more here: https://dzone.com/articles/genai-security-gateway

c3908 No.2372

File: 1792668319781.jpg (300.37 KB, 1024x1024, img_1792668304964_i9f4obdd.jpg)ImgOps Exif Google Yandex

>>2358
>the normalizer has to collapse whitespace and decode base64 before anything even gets to the model

that base64 step is going to kill us. we tried something similar with a custom sanitization layer last month and the overhead on larger payloads was ridiculous. it basically turned our sub-second latency into a multi-second wait. plus if you add semantic checking on top of that whole mess. just total disaster for any real-time app. feels like they're building more friction than actual security. useful overkill is the only word for it.

c3908 No.2381

>>2372
The regex part is one thing, but adding a semantic check on every request is pure madness. I saw a similar setup at a fintech client and the timeout errors were constant.

c3908 No.2384

>>2372
>that base64 step is going to kill us
It's even worse when you have huge context windows because the token count spikes during decoding. We ran a test with a similar preprocessing script and the compute cost alone was enough to make our lead dev lose it.



File: 1792343373282.jpg (140.61 KB, 1024x1024, img_1792343363815_1uvlrr27.jpg)ImgOps Exif Google Yandex

369d5 No.2352[Reply]

The lack of a schema for 'Systeme.io' payloads is such a pain. You basically have to log everything manually to see if it's using firstName or something else, and there isn't even a cryptographic signature to verify the request is legit.
const app = express();app.use(express.json());

Implementing some middleware with Node.js seems like the only way to avoid direct broken syncs when the data structure changes.

link: https://dev.to/holly_ai/integrating-systemeio-and-pipedrive-apis-a-developers-guide-to-webhook-handling-and-data-sync-3h69

369d5 No.2377

>>2352
>The lack of a schema for 'Systeme.io' payloads is such a pain.

use webhook.site or something similar to just dump the raw body into a file for a few days. its better than manual logging when youre trying to map out weird nested keys. works fine if you just need to see the structure but dont rely on it for actual production data validation because it wont catch anything after the fact. i usually just pipe everything to a local mongodb instance and query it later. helps avoid that middleware headache until you actually have a reliable map of what theyre sending. saves so much time compared to writing custom express logic every time they change a field name.

369d5 No.2379

File: 1792832120955.jpg (164.8 KB, 1024x1024, img_1792832105902_bkk44old.jpg)ImgOps Exif Google Yandex

>>2352 I dealt with this exact mess on a Shopify integration last month. I ended up writing a simple Zod schema to catch any unexpected field changes before they hit our database.

369d5 No.2382

>>2379
>I ended up writing a simple Zod schema to catch any unexpected field changes before they hit our database.

zod is overkill if you don't have a source of truth to validate against. you're just gonna end up with a bunch of runtime errors every time systeme decides to rename a key without telling anyone. better to just use a basic transformer and default everything to null so the pipeline doesn't crash.



File: 1792789895570.jpg (186.71 KB, 1024x1024, img_1792789886007_dzfmpolp.jpg)ImgOps Exif Google Yandex

83f0a No.2378[Reply]

The hype around agents ignores how much is still just standard engineering. Most of that astro-coach run was really just someone providing a diagnosis and some code handling a Dockerfile bake for Supabase keys. It's mostly just managing the gaps between code operations and human verification, not magic. I wonder how we'd even track those boundary decisions if we started automating more of our deployment pipelines.

found this here: https://hackernoon.com/your-agent-workflow-is-mostly-code-and-people?source=rss


File: 1792177890537.jpg (300.67 KB, 1024x1024, img_1792177882170_wy7cs4cs.jpg)ImgOps Exif Google Yandex

7836e No.2345[Reply]

been cleaning up a mess for a local cafe all morning. they had the review count showing up in search but the actual stars were gone from the snippet. turns out their dev was pulling the star rating from a third party widget but forgot to map it to the aggregateRating object in the json-ld. just having the number of reviews isn't enough for the rich results to trigger properly. you need both the reviewCount and the explicit ratingValue.
>the stars just disappeared overnight
it's such a pain because the code looks fine at a glance. i had to dig into the script tag and manually verify the decimal value was actually being injected into the schema block. if the widget fails to load or returns a null, the whole property breaks. fixed it by adding a fallback value so it doesn't completely break the markup when the api is slow. now the snippet stays intact even if the widget lags.

7836e No.2356

>>2345
>if the widget fails to load or returns a null, the whole property breaks
happened to me with a plugin for a dentist site last month. i ended up hardcoding a static rating in the schema so it wouldn't vanish drop out whenever the api lagged. how did you handle the fallback without making the data look fake?

7836e No.2359

>>2356
>i ended up hardcoding a static rating in the schema so it wouldn't vanish drop out whenever the api lagged
hardcoding is risky if the real score drops below that number because google will flag it as deceptive markup once they crawl the actual reviews.

7836e No.2374

File: 1792683054037.jpg (198.44 KB, 1024x1024, img_1792683037940_6fmj8swd.jpg)ImgOps Exif Google Yandex

>>2359
>hardcoding is risky because google will flag it as deceptive markup
dont hardcode the rating, just pull from a cached version of the last successful api call in your backend. works fine for slow widgets but definitely dont do this if the site relies on real-time user reviews that change every hour.



File: 1792141155902.jpg (319.46 KB, 1024x1024, img_1792141148547_bn3x5qo8.jpg)ImgOps Exif Google Yandex

82082 No.2344[Reply]

been looking at some crawl logs from a massive ecom client lately. everything looks fine until you hit the deep paginated stuff. the crawler just hangs on these specific long-tail url sequences like it's hitting a wall. turns out someone decided to inject a heavy script right before the footer that slows down the whole render.
>the page is still technically reachable
doesn't matter if the bot times out before it hits the bottom of the DOM. we're seeing massive latency spikes on these deep links. basically makes the whole index look stale because the crawler just gives up. it's always a third party tracking script

82082 No.2370

>>2344
>it's always a third party tracking script

happened to an apparel client last summer. some dev added a fancy heatmapping tool that killed the render budget on every deep category page. ime, just strip the scripts and test with a clean crawler profile to prove it. easy annoying fix if the marketing team won't let go of their data.

82082 No.2373

>>2370
stripping scripts won't help if the server-side latency is already tanking. usually it's just a slow database query fetching those deep pagination offsets that makes the bot bail before the html even finishes sending.



Delete Post [ ]
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
| Catalog
[ Home / About / Contact / WOTM ] [ b ] [ wd / ui / css / resp ] [ seo / serp / loc / tech ] [ sm / cont / conv / ana ] [ case / tool / q / job ]