Every WordPress Media Library Hits the Same Wall ![rw-book-cover](https://www.therepository.email/wp-content/uploads/2026/09/infinite-uploads-feature-img.jpg) ๐Ÿ”— **Source:** [Every WordPress Media Library Hits the Same Wall](https://www.therepository.email/every-wordpress-media-library-hits-the-same-wall-most-agencies-just-dont-see-it-coming) > [!note]+ Document Notes > tags: [wordpress, media-library, core-web-vitals, image-optimization, agency-operations, sponsored-content] > author: Blake Whittle > source: The Repository > reference: https://www.therepository.email/every-wordpress-media-library-hits-the-same-wall-most-agencies-just-dont-see-it-coming > date created: 2026-09-08 14:20 > > > [!info] Generated analysis โ€” not the author's words. Sections below are machine-written > > from the captured source. Only text inside `> [!quote]` blocks is verbatim from the author. > > Do not quote or attribute any other line to the named author. > > # ๐Ÿท๏ธ Title: Every WordPress Media Library Hits the Same Wall (Most Agencies Just Don't See It Coming) > <!-- deep-read:sections start --> ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [Every WordPress Media Library Hits the Same Wall](https://www.therepository.email/every-wordpress-media-library-hits-the-same-wall-most-agencies-just-dont-see-it-coming) โ€” the source, published 2026-09-08 12:07 UTC. - [The Repository Advertising Policy](https://www.therepository.email/advertising-policy) โ€” linked in the post's own sponsorship disclosure. - [Infinite Uploads](https://infiniteuploads.com/) โ€” the product the post sells; linked six times in ~1,400 words. - [Backline Web](https://backlineweb.com/) โ€” the author's white-label agency, the source of every anecdote. - [Clikit acquires Infinite Uploads / Big File Uploads](https://backlineweb.com/clikit-acquires-infinite-uploads-big-file-uploads/) โ€” the November 2024 acquisition the author references. - [Google: Largest Contentful Paint](https://web.dev/articles/lcp) โ€” the โ‰ค2.5s "good" threshold the post cites correctly. ## ๐Ÿ“ Summary - **What happened.** The Repository ran a sponsored post by Blake Whittle, owner of Infinite Uploads and of the white-label agency Backline Web. It argues that WordPress media libraries degrade predictably along three axes โ€” unoptimized images, unfindable files, and unbounded storage โ€” and that stacking one plugin per axis creates a fourth problem. The remedy offered is his own consolidated plugin. - **Why it matters.** The three mechanisms described are real and correctly reasoned, even though the piece is an advertisement. Image weight genuinely drives Largest Contentful Paint; storage genuinely crosses hosting plan tiers; findability failure genuinely causes duplicate uploads. For an agency running dozens of sites, the operational cost compounds in a way no single site audit surfaces. - **Key stakeholders.** Agencies managing multi-site portfolios; hosts whose pricing tiers on disk; the WordPress Core Media and Performance teams; the Accessibility team, whose alt-text work turns out to be adjacent to the findability problem the post describes; plugin vendors in the offload/optimize/organize space (Imagify, Smush, ShortPixel, WP Offload Media, FileBird, Media Library Folders). - **Risks and tradeoffs.** Every diagnostic in the piece is authored by the party selling the cure, and the "what to check" test is calibrated so that essentially all sites fail it. The consolidation argument is real but is presented as a binary against a straw stack of four colliding plugins. Offloading to a vendor CDN is also a portability decision the post never names: media that lives in a vendor's bucket is media whose exit cost is now a migration project. - **Bottom line.** Read it as a well-constructed problem statement and a competent piece of native advertising, not as evidence. The checklist is worth running; the conclusion it is engineered to produce is not worth accepting on the article's authority. ## ๐Ÿ“– Main Content - **The framing.** The post opens with a disclosure banner โ€” this is paid content, not reporting โ€” and then a credibility move: the author sees media libraries from two angles, as an agency operator and as a plugin owner. That dual vantage is genuinely unusual and is the piece's strongest rhetorical asset. It is also the source of its central conflict of interest, since the "agency" evidence and the "product" evidence are the same person's business interests. - **The decay model.** The core claim is that media libraries fail silently. There is no error state, no warning banner, no threshold event. Weight accumulates until an unrelated-looking symptom surfaces โ€” a Core Web Vitals warning in Search Console, a hosting invoice that jumped a tier, a site that "feels" slow. The post's most defensible insight is that these three symptoms are commonly one cause presenting three ways, and that treating them as separate tickets is why the underlying problem persists. - **Problem one: image weight.** Images arrive at camera or stock-library resolution, in the wrong format, uncompressed. The causal chain to LCP is stated correctly: heavier hero images push out the paint of the largest above-the-fold element, and Google's "good" LCP threshold is 2.5 seconds. The remedy named โ€” convert to WebP or AVIF, resize to displayed dimensions rather than captured dimensions โ€” is standard, correct, and does not require the author's product. - **Contested / omitted.** The claim that "WordPress will happily store a 4MB JPEGโ€ฆ and it won't say a word about it" is directionally true but overstated. Since WordPress 5.3, `big_image_size_threshold` downscales uploads whose longest edge exceeds 2560px and retains the original as a `-scaled` file; core has supported WebP upload and serving since 5.8. What core does *not* do is transcode existing JPEG sub-sizes to WebP by default โ€” that change was proposed for 6.1 and reverted. So core is not silent, it is merely insufficient. The post flattens that distinction because a more capable core weakens the pitch. - **Problem two: findability.** WordPress's media library was built for a smaller job: a flat list, no folder taxonomy, and a search that does not understand image content. The post's example โ€” search "tree," get everything except trees โ€” is accurate in effect. Multiplied across client accounts, hours per month go to locating files. The downstream consequence the post identifies is the sharpest observation in the piece: **unfindable media causes re-uploading**, so a search problem becomes a storage problem, and the same header image ends up in the library six times. - **What the post gets wrong about the mechanism.** Verified against WordPress 7.0.2 source: the media library search in wp-admin *does* index filenames โ€” both `wp-admin/includes/post.php:1381` and `wp-admin/includes/ajax-actions.php:3074` set `wp_allow_query_attachment_by_filename` to true โ€” alongside title, caption (`post_excerpt`) and description (`post_content`). What it does **not** index is alt text. `_wp_attachment_image_alt` is postmeta, read for output and editing (`wp-includes/media.php:1105`, `:4568`) and never joined into the search query. That is a specific, fixable core gap, and it inverts the post's framing: the field teams are most systematically trained to populate โ€” because accessibility review demands it under WCAG 2.2 SC 1.1.1 โ€” is the one field the search throws away. - **Problem three: storage.** Files persist on the origin server indefinitely unless something offloads them. Video is the pathological case: a single ten-minute demo can exceed a year of blog images, and course or membership sites carry dozens. The cost mechanism named is a real one and is often missed โ€” you do not pay for storage linearly, you pay in *step functions* when you cross a plan tier, so a handful of files can trigger a full plan upgrade whose price bears no relation to the megabytes that caused it. - **The consolidation argument.** One plugin per problem yields three plugins operating on one shared resource. The post cites a takeover site running two folder plugins plus Imagify and Smush simultaneously. The failure mode described โ€” two optimizers processing the same files, media plugins colliding after a core update โ€” is real and familiar to anyone who has inherited a site. The post then converts a genuine integration problem into a product conclusion, with a hedge in the second-to-last paragraph acknowledging that plugin stacks can be made to work. - **Uncertainties.** No dataset, no sample size, no named client, no shared PageSpeed report, no before/after numbers for the product's own effect. Every quantity in the piece is either a public constant (the 2.5s LCP threshold) or an unverifiable anecdote ("more than half the total page weight," "six versions of the same header image"). ### ๐Ÿ—’๏ธ Notes - **Disclosure is up front and explicit.** The post leads with a sponsorship banner linking The Repository's advertising policy. Credit where due: this is better disclosure practice than most WordPress-ecosystem native advertising, and it is the reason the piece can be read as an argument rather than a deception. - **Dual-role credibility.** The author establishes standing twice โ€” "several hundred client sites" at the agency, plus the install base of Infinite Uploads โ€” and returns to the product framing at each of the three problem headings ("I see the same thing from the Infinite Uploads side too," "This is also the complaint I hear most often before someone tries Infinite Uploads," "I hear the same story from agencies that come to Infinite Uploads"). The structural pattern is: state problem, corroborate with agency anecdote, corroborate again with product-funnel anecdote. The second corroboration is not independent of the first. - **The silent-failure thesis is the durable idea.** A media library has no failure state. Systems without an error condition do not get maintained, because maintenance is triggered by errors. This generalizes well past media: it is the same reason nobody prunes a log directory until the disk fills. - **Symptom aliasing.** Three tickets โ€” a CWV warning, a hosting invoice, a "site feels slow" complaint โ€” routed to three different people, all caused by one thing. In an agency this is worse than in a single site, because the three symptoms may land with three different clients and never be correlated. - **Duplicates as a search failure, not a discipline failure.** The post's causal claim is that people re-upload because they cannot find. That reframes duplicate media as a tooling defect rather than a user-hygiene problem, which is the more useful frame and the more actionable one. - **The audit checklist is a lead-qualification funnel.** Four checks: sort by size and flag anything over 500KB; search by description rather than filename and time it; measure `wp-content/uploads` growth year over year; count near-duplicates of a logo or header. Then: "Most sites fail at least one of these. Agency portfolios usually fail all four." A 500KB threshold for "a photo" is low enough that a legitimately full-bleed hero on a retina display fails it. A test whose designer states in advance that nearly everything fails is not a diagnostic โ€” it is a qualification step that converts readers into prospects. The checks are still worth running; just run them knowing what they were built to return. - **The acquisition detail is load-bearing.** Infinite Uploads was bought in November 2024 and, per the author, then solved only storage. The expansion into optimization and folders is presented as agency-driven product discovery. It is also, read commercially, a category expansion into three competitors' markets at once. - **What the post never mentions.** Vendor lock-in on offloaded media. Cost of the product itself. What happens to the CDN-edge-optimized images if the subscription lapses. Whether core's `big_image_size_threshold`, `srcset`, or native lazy-loading already cover part of problem one. Alt text, in a post substantially about not being able to find images. ## ๐Ÿ“š References - [Every WordPress Media Library Hits the Same Wall (Most Agencies Just Don't See It Coming)](https://www.therepository.email/every-wordpress-media-library-hits-the-same-wall-most-agencies-just-dont-see-it-coming) โ€” The Repository, sponsored post, 2026-09-08. - [The Repository โ€” Advertising Policy](https://www.therepository.email/advertising-policy) โ€” the disclosure the banner links. - [Clikit acquires Infinite Uploads and Big File Uploads](https://backlineweb.com/clikit-acquires-infinite-uploads-big-file-uploads/) โ€” primary source for the November 2024 acquisition. - [Infinite Uploads โ€” Media Library Folders](https://infiniteuploads.com/features/media-library-folders/) and [Offload Media Library](https://infiniteuploads.com/features/offload-media-library/) โ€” the vendor's own feature pages, linked in-post. - [web.dev โ€” Largest Contentful Paint (LCP)](https://web.dev/articles/lcp) โ€” primary source for the 2.5s threshold. - [WordPress 5.3 โ€” big image size threshold](https://make.wordpress.org/core/2019/10/09/introducing-handling-of-big-images-in-wordpress-5-3/) โ€” core behavior the post's "WordPress won't say a word" claim omits. - [WordPress Core Trac #22744 โ€” Search media by alt text](https://core.trac.wordpress.org/ticket/22744) โ€” the long-standing core gap this analysis verified is still open in 7.0.2. - WordPress 7.0.2 source, read locally: `wp-includes/class-wp-query.php:1921`, `wp-admin/includes/post.php:1381`, `wp-admin/includes/ajax-actions.php:3074`, `wp-includes/media.php:1105`. ## ๐Ÿ—ฃ๏ธ Paraphrase - **Opening.** The author runs both a white-label agency with several hundred client sites and the Infinite Uploads product, so he sees a wide sample. Across that sample, the recurring failure is not security or plugin conflict โ€” it is the media library. - **Onset.** Decay is gradual. A site launches with a few dozen files and eighteen months later holds thousands, including launch videos, campaign PDFs, and media nobody can account for. Costs rise, speed falls, and someone loses half a morning hunting for a file. - **Silence.** The problem never announces itself. There is no error and no banner. The library simply gets heavier and less manageable until an external signal โ€” a Core Web Vitals warning, a hosting tier increase, a perceptibly slow site โ€” forces attention. Those signals look unrelated but usually share one cause. - **Scale.** One bloated library is an afternoon's cleanup. Forty of them become a standing task nobody has capacity for. - **Images.** Most images enter WordPress at full capture resolution, in the wrong format, uncompressed. A 4MB JPEG gets stored where 200KB would have served. That excess registers in Largest Contentful Paint, where Google's "good" bar is 2.5 seconds. On one client site the author checked, unoptimized images exceeded half of total page weight and LCP sat well outside the good range. Converting to WebP or AVIF and resizing to displayed dimensions cuts load time with no code changes. By the time Search Console flags it, the problem spans every image on every page that uses them. - **Findability.** The media library was designed for a smaller workload and holds up at a few hundred files. Searching a descriptive term returns everything but the match; there is no folder structure; locating a specific past asset means scrolling thumbnails on recognition. Across many client accounts that becomes hours a month that no performance audit ever records. It also breeds duplicates: unable to find the logo, people upload it again, and libraries accumulate six near-identical unlabeled headers. The author reports "I can't find anything here" as the most common complaint he hears before someone tries his product. - **Storage.** Files stay on the server forever unless something moves them, and video is the worst case โ€” one ten-minute demo can outweigh a year of blog images, and course and membership sites carry many. Crossing a hosting plan's storage tier raises the bill, so a few videos can force a plan upgrade purchased mainly to warehouse files that never needed to sit on a web server. Offloading to cloud storage removes that competition for disk and server resources. - **Collision.** None of the three problems is new; what changed is how fast sites hit all three together. Adding one plugin per problem puts three plugins on one media library. The author has seen two image optimizers processing the same files and media plugins colliding after core updates. - **Self-test.** He proposes a five-minute check on your own site: sort the library by size and treat anything over 500KB as a compression candidate; search for a known file by describing it and time the result; measure `wp-content/uploads` against last year; count near-duplicates of a logo or header. He predicts most sites fail at least one and agency portfolios fail all four. - **The pitch.** When he bought Infinite Uploads in November 2024 it addressed storage alone. Inheriting a site that ran two folder plugins alongside Imagify and Smush convinced him one plugin should own the whole media lifecycle. The rebuilt product optimizes at the CDN edge rather than on the server, adds real folders and search, and offloads to cloud storage behind a CDN. - **Close.** He concedes that assembled plugin stacks can work, but asks whether an agency chose its stack deliberately or merely accumulated it, and urges readers to go look at their own library today. ## ๐Ÿ“ฐ Newsletter **The media library is the room in the house nobody opens.** The Repository ran a sponsored post this week from Blake Whittle โ€” Infinite Uploads owner, Backline Web operator โ€” and it is worth your time despite being an ad, because the problem statement is better than the conclusion. His thesis: media libraries never break, they just get heavy. No error, no banner, no moment where something goes visibly wrong. Then one day it's a Core Web Vitals warning, a hosting bill that jumped a tier, and a client asking why the site feels sluggish โ€” three tickets, three people, one cause. The best line in the piece isn't the pitch, it's the diagnosis of duplicates: people re-upload the logo *because they can't find the logo*. That makes six copies of your header image a search bug, not a sloppiness problem. Which is a much more useful thing to believe, because you can fix a search bug. And here's the part the post doesn't get to. We checked WordPress 7.0.2 source: media search **does** index filenames, titles, captions and descriptions. It does **not** index alt text. `_wp_attachment_image_alt` is postmeta โ€” read when rendering, read when editing, never joined into the query. So the one descriptive field your team is most reliably trained to fill in, because accessibility review makes them, is the one field search throws away. [Trac #22744](https://core.trac.wordpress.org/ticket/22744) has been open on this for years. If you want a first-good-issue with a real payoff attached, that's a candidate โ€” it turns a11y compliance work into an operational win, which is the rarest kind of argument to be able to make. Two things to hold at arm's length. The "run these four checks" section is a lead qualifier โ€” the author tells you in advance that nearly every site fails, and a 500KB photo threshold will flag legitimate retina heroes. Run the checks anyway, just don't mistake failing them for a diagnosis. And the post skips the question every offload decision should start with: once your media lives in a vendor's bucket behind a vendor's CDN, what does leaving cost? Also underplayed: core already does more than the post allows. `big_image_size_threshold` has downscaled oversized uploads since 5.3, and WebP has been supported since 5.8. Core isn't silent here. It's just not finished. ## โœ… Action Items #### DevRel - Developer advocacy: build a talk on "silent failure classes in WordPress" using media libraries, log directories, and orphaned transients as the worked examples โ€” systems with no error state get no maintenance. - Education: run a workshop on auditing a client media library that teaches the four checks *and* teaches how to spot a vendor-calibrated diagnostic, so attendees leave able to evaluate the next advertorial themselves. - Developer experience: publish a WP-CLI recipe that reports uploads growth, size distribution, and near-duplicate detection so the audit is reproducible rather than manual. - Developer marketing: write the alt-text-search finding as a standalone technical post; it is original, verified against core source, and useful independent of any product. - Community management: draft guidance for WordPress publications on sponsored-post labeling that treats The Repository's banner-plus-policy-link as the floor, not the ceiling. - Internal/external/cross-project: connect the Accessibility and Core Media teams on the alt-text indexing question โ€” it sits precisely between their remits, which is likely why it has gone unowned. #### OSPO - Policy & Governance: define disclosure expectations for vendor-authored technical content that an OSPO's own staff are cited in or asked to amplify. - License Compliance: audit which media-handling plugins in the org's approved stack bundle third-party optimization SDKs and under what licenses. - Security Management: treat media offload plugins as a credential-holding class โ€” they store cloud storage keys โ€” and include them in secret-rotation scope. - Software Inventory: add media pipeline plugins to the SBOM with explicit ownership, since collision behavior across four of them is a real failure mode. - Developer Support: publish internal guidance on evaluating a consolidated vendor plugin versus a composed stack, with exit cost as a required line item. - Community Engagement: fund the core work on media search rather than routing around it with a plugin, where budget allows. - Strategic Alignment: track "media weight per site" as a portfolio-level KPI so the compounding cost the post describes becomes visible before it becomes a bill. #### Community - Maintainers: use the media-library plugin space as a case study in overlapping-scope maintenance and what coordination between competing plugins could look like. - Contributors: propose Trac #22744 (alt text in media search) as a mentored first contribution โ€” small surface area, clear test case, real user benefit. - Sponsors: ask sponsors funding "performance" work whether it covers core media search, which is unglamorous and unfunded. - Ecosystem: run a coordinated test of what actually happens when two image optimizers process the same attachment, and publish the result as neutral ecosystem documentation. #### WordPress - Core: triage the media library's flat-list architecture against its actual modern workload; the post's "built for a smaller job" claim is fair. - Core Performance: quantify how much of median LCP failure on WordPress sites is attributable to unoptimized media specifically, so the claim rests on data rather than one unnamed PageSpeed report. - Core AI: evaluate whether AI-generated alt text at upload time is defensible โ€” it would help both accessibility and, if #22744 lands, findability, but auto-generated alt text carries real quality risk and must not be presented as compliance. - **Core Program Team:** coordinate the Media/Accessibility overlap explicitly; this issue has no single owning team, which is the reason it persists. - Mobile: check whether app uploads bypass `big_image_size_threshold` handling, since mobile capture resolutions are the worst offenders. - Playground: build a Playground blueprint that seeds a deliberately bloated media library so the audit checks can be taught reproducibly. - Community: add "audit your media library" as a contributor-day table task โ€” it is approachable and produces real data. - Training: add a Learn WordPress lesson on media hygiene that covers naming, captions, alt text, and why each field matters for retrieval as well as for accessibility. - Marketing: none required; avoid amplifying vendor-authored problem statements as editorial. - Support: track how often forum threads about "site slow" resolve to media weight, to size the problem from support data. - Design: revisit the media modal's search affordance โ€” users cannot tell which fields are searched, which is why "search for tree" feels broken rather than under-specified. - Documentation: document exactly which fields media search covers. This is currently discoverable only by reading `class-wp-query.php`, which is why the post got the mechanism wrong. - Photos: apply the same taxonomy lesson โ€” descriptive metadata at ingest is what makes a library retrievable at scale. - TV: ensure video assets carry captions and descriptive metadata, which is the same findability discipline applied to a different medium. - Polyglots: note that a search indexing only English-authored captions serves non-English editors poorly; localized metadata deserves a look. - Accessibility: make the alt-text-search argument publicly. Accessibility work that also produces operational payoff is the most persuasive form of the case, and this is a clean instance of it. - Meta: consider surfacing media-weight signals in .org plugin performance reporting if telemetry ever permits. - CLI: add or document a `wp media` subcommand for size distribution and duplicate detection so the audit is scriptable. - Hosting: publish clear storage-tier documentation. The post's step-function cost claim is accurate and mostly invisible to customers until the invoice. - Tide: include media-handling plugin conflicts in scoring signals if feasible. - Openverse: reinforce that ingestion metadata quality determines retrieval quality โ€” the same lesson at a larger scale. - Themes: review theme image size registration; themes that register many sizes multiply every upload's storage cost. - Plugins: consider a review-time note for plugins that write to shared media state, since collisions between them are a known failure class. #### The WPOCC - Programs: a maintainer stipend aimed at unglamorous core media work would target exactly the gap this post routes around commercially. - Projects: a governance clinic on how the ecosystem handles overlapping-scope plugins would be timely. - Funding experiments: milestone-funded work on Trac #22744 is small, bounded, and demonstrably valuable โ€” a good test case for microgrants. #### FAIR - Technical independence: media offloaded to a vendor bucket behind a vendor CDN is a dependency with an unpriced exit. FAIR's provenance and portability framing applies directly and the post never raises it. - Policies and covenants: any recommended offload provider should carry an explicit data-egress and sunset commitment. - Productized governance artifacts: add "where does the media live and what does leaving cost" to agency operator-agreement templates. ## ๐Ÿงช Hypotheses - **H1.** On a representative sample of WordPress sites, unoptimized images account for the majority of page weight on more than half of sites failing the 2.5s LCP threshold. (The post asserts this from one unnamed client site.) - **H2.** Enabling alt text in media library search materially reduces duplicate uploads on sites where alt text coverage exceeds 80%, because the descriptive term an editor searches is more often present in alt text than in filename or title. - **H3.** Media libraries with two or more optimization plugins active show measurably worse output than libraries with one, due to double-processing artifacts and conflicting size regeneration. - **H4.** Hosting cost increases attributed to "growth" are more often triggered by storage tier crossings than by bandwidth or CPU on small-to-mid agency portfolios. - **H5.** Near-duplicate media count correlates more strongly with number of distinct editors than with site age, which would confirm the post's search-failure causal story over a simple accumulation story. - **H6.** Agencies that consolidate to a single media plugin report lower time-to-locate-a-file but higher perceived switching cost, so adoption is gated by exit fear rather than by feature comparison. ### ๐Ÿ“Š Methodology - **For H1:** Sample WordPress sites via HTTP Archive's CrUX-linked dataset; compute image bytes as a share of total transfer, and cross-tabulate against field LCP. HTTP Archive already publishes both, so this is a query rather than a study. - **For H2:** Not observable in the wild โ€” alt text is not currently searched. Requires a controlled trial: patch media search to include `_wp_attachment_image_alt`, deploy to a cohort of multi-editor sites, and measure duplicate-upload rate against a matched control over 90 days. - **For H3:** Controlled bench. Install a fixed corpus of source images on identical WordPress instances with one, two, and three optimizers active; compare output byte size, visual quality (SSIM or Butteraugli), and count of orphaned or regenerated sub-sizes. - **For H4:** Survey host pricing pages to model tier boundaries, then instrument a sample of agency sites for uploads growth. The step-function claim is testable purely from published pricing plus disk telemetry. - **For H5:** WP-CLI script computing perceptual-hash clusters over the attachment table, regressed against editor count and site age. Perceptual hashing is necessary because the post's own example โ€” "each one slightly different" โ€” defeats exact-hash duplicate detection. - **For H6:** Structured interviews with agencies that switched and agencies that considered and declined; code responses for stated versus revealed blockers. ### โ“ Questions - Why is alt text โ€” the field accessibility review most reliably forces editors to populate โ€” excluded from the query that would make it operationally valuable? Is that a deliberate performance decision (a postmeta join on a large table) or simply unowned? - If media search indexes filenames already, how much of the perceived search failure is actually an upload-naming problem (`IMG_4471.jpg`) rather than a WordPress problem? - What is the true exit cost of a CDN-edge optimization model, where the optimized derivatives may never have existed on the origin at all? - Does core's `big_image_size_threshold` measurably reduce median upload weight since 5.3, and if so, why does the "WordPress stores your 4MB JPEG untouched" framing persist in ecosystem marketing? - At what portfolio size does the economics genuinely flip from composed stack to consolidated vendor โ€” and is it feature-driven or purely a per-site license arithmetic? - Who in the WordPress project owns the media library's information architecture? The absence of an answer may be the real finding here. ### ๐Ÿ”ฎ Future Research - A neutral, non-vendor benchmark of the media plugin space: optimization quality, folder implementations, offload portability, and documented behavior when two are installed together. - Empirical work on the cost of accessibility debt expressed operationally rather than ethically or legally โ€” the alt-text-and-findability link is one instance of a class that is likely much larger and is chronically under-argued. - A study of "silent failure" categories in WordPress: which degradations have no error state, and whether adding a soft signal (a Site Health check for media weight, say) changes maintenance behavior. - Portability research on media offload: what a full repatriation from each major provider actually costs in hours and dollars. - Analysis of sponsored technical content in the WordPress ecosystem โ€” disclosure practice, and whether readers distinguish it from editorial in practice. ### ๐Ÿ’ก Implications - **Practice.** Agencies should run the four checks and should also add a fifth the post omits: what does it cost to leave whichever storage answer you pick. Media hygiene belongs in an onboarding checklist, not in an incident response. - **Policy.** Publications running sponsored technical content need a disclosure standard; The Repository's banner-plus-policy-link is a reasonable model to formalize rather than leave to individual discretion. - **Security.** Offload plugins hold cloud credentials and are therefore a higher-value target than their category suggests. Any media consolidation decision is also a secrets-management decision. - **Education.** The strongest teaching artifact here is the vendor-calibrated diagnostic itself. Teaching people to notice "the author told me in advance nearly everyone fails this" is a transferable skill worth more than the media specifics. - **Funding.** Core media search has an open ticket, a clear beneficiary, and no commercial sponsor โ€” precisely the profile of work that only a collective funding mechanism will ever pick up, because every vendor's incentive is to sell around it. ### ๐Ÿง  Learning Styles Assessment - **Reading level estimate:** Flesch Reading Ease **65.9**, Flesch-Kincaid Grade **7.9**, computed over the 1,288-word body (84 sentences, 15.3 words/sentence, 1.48 syllables/word). Comfortably "standard" readability โ€” deliberately accessible, appropriate for a decision-maker audience that is not necessarily technical. #### ๐Ÿ‘€ Visual learners - Present: a single feature image; four descriptive section headings that carry meaning on their own ("20 GB of video on a plan built for five"). - Improve: a before/after PageSpeed waterfall, a chart of uploads growth over eighteen months, a screenshot of the six duplicate headers the author describes. The post asserts visuals rather than showing them, which for a piece about images is a missed opportunity. #### ๐Ÿ”Š Aural learners - Present: nothing โ€” text only, no audio version. - Improve: a three-minute narrated summary; the conversational register would read aloud well with no rewriting. #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: strong. Plain-language definitions (LCP is glossed inline as "the Core Web Vitals metric Google uses to judge how fast your main content loads"), concrete analogies, and a narrative through-line. - Improve: a short glossary for WebP, AVIF, CDN edge, and storage tier, none of which are defined for a non-technical agency owner. #### ๐Ÿงฉ Kinesthetic learners - Present: the strongest dimension. "What to actually check" is a genuine four-step hands-on task with a stated five-minute budget. - Improve: supply a WP-CLI one-liner or a Playground link so the reader can run the audit rather than click through it. #### ๐Ÿง  Logical learners - Present: a clear three-problem structure with a stated compounding mechanism, and one real numeric anchor (2.5s LCP). - Improve: every other quantity is anecdotal. A table of the three problems against symptom, cause, and remedy would expose the argument's shape โ€” and would also expose that the remedy column is the same product three times. #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: an implicit peer frame ("I hear the same story from agencies"), and The Repository's Slack community referenced in site chrome. - Improve: a discussion prompt or a request for readers to share their own audit results, which would also convert the anecdotes into data. #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: good. The self-audit is designed for one person working alone, and the closing instruction is explicitly individual. - Improve: a scoring rubric so a solo reader can judge severity rather than just pass/fail. #### ๐ŸŒฟ Naturalistic learners - Present: none. No mention of the energy cost of serving oversized media. - Improve: connect image weight to carbon โ€” unoptimized media is one of the few web sustainability arguments where the technical fix and the environmental fix are literally the same action. This is a real gap given the audience. ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: the page uses a proper heading hierarchy with descriptive section headings, and the feature image carries meaningful alt text ("Sponsored ad for Infinite Uploads with WordPress media library message"), which correctly identifies it as promotional. - Improve: the sponsorship disclosure is visually banner-styled; confirm it is exposed in reading order before the article body and not positioned away from it, since its meaning is order-dependent. #### Keyboard navigation - Present: standard WordPress article layout; links are native anchors and reachable in document order. - Improve: not verifiable from the captured HTML โ€” the site sits behind a Cloudflare interstitial, and an interactive challenge is itself a keyboard and assistive-technology risk worth testing separately (WCAG 2.2 SC 2.1.1, 3.3.8). #### Contrast and readability - Present: not verifiable from captured text; the body copy is short-paragraph and high-legibility in structure. - Improve: verify the sponsored-banner styling meets 4.5:1 โ€” disclosure text is frequently set in a lighter treatment precisely because it is de-emphasized, which is an accessibility problem and an ethics problem at the same time (SC 1.4.3). #### Text resizing and reflow - Present: responsive theme, no fixed-width content in the captured markup. - Improve: confirm the banner and the two call-to-action lines reflow at 320px and 200% zoom without clipping (SC 1.4.10, 1.4.4). #### Media and captions - Present: one static image, correctly alt-texted. No video or audio, so no caption obligation is triggered. - Improve: if an audio version is ever added, ship a transcript with it. #### Forms and interactions - Present: no forms in the article body. The trial call-to-action is a plain link, which is the accessible choice. - Improve: the newsletter and Slack signup in site chrome should carry programmatic labels and inline error handling (SC 3.3.1, 3.3.2); target size for the CTA links should meet 24ร—24 CSS pixels (SC 2.5.8). #### Standards reference - Gaps map to WCAG 2.2 AA: **1.4.3** (disclosure contrast), **1.4.4 / 1.4.10** (zoom and reflow of banner and CTAs), **2.1.1 / 3.3.8** (Cloudflare interstitial as a keyboard and cognitive barrier), **2.5.8** (CTA target size), **3.3.1 / 3.3.2** (chrome signup forms). Nothing observed rises to a Level A failure in the article content itself; the risks sit in the chrome and the challenge layer. ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: minimal. Examples are implicitly US-centric agency operations; hosting tiers and Search Console are treated as universal. - Improve: storage and bandwidth economics differ sharply by region, and CDN edge coverage is not uniform. A post recommending a CDN-based answer should say where that answer degrades. #### Inclusive language - Present: good. Gender-neutral throughout, no idiom-heavy passages, jargon glossed on first use in the LCP case. - Improve: WebP, AVIF, "CDN edge," and "storage tier" go undefined; for an audience explicitly framed as agency *owners* rather than developers, that is an exclusion by vocabulary. #### Neurodiversity support - Present: strong. Short paragraphs, frequent descriptive headings, consistent problem-symptom-remedy structure, an explicit time estimate on the one task it asks of the reader. - Improve: a summary box up front would help readers who need the conclusion before the narrative rather than after it. #### Representation - Present: a single first-person voice; no other practitioners quoted, and no client named. - Improve: quoting even two other agency operators would broaden representation and would simultaneously fix the piece's evidence problem โ€” the same edit solves both. #### Psychological safety - Present: notably good on this axis. The framing is explicitly non-blaming โ€” the problem is described as invisible and structural, not as the reader's negligence, and the closing line concedes other approaches work. - Improve: the "most sites fail" prediction sits close to manufactured inadequacy. Pairing each check with a severity threshold would keep it diagnostic rather than anxiety-inducing. ### โœ… Logical Validity #### Strong reasoning - **Causal, images โ†’ LCP.** The chain from oversized images to page weight to Largest Contentful Paint is mechanically correct and correctly bounded by a real published threshold. Location: the "Full resolution, wrong format, no compression" section. It is strong because the mechanism is stated, not merely asserted, and because the remedy named (WebP/AVIF plus resizing to displayed dimensions) does not depend on buying anything. To clarify further: state which image the LCP element actually was on the client site cited. - **Causal, findability โ†’ duplication.** "When nobody can find the logo they already uploaded, they upload it again" is the piece's best inference. It converts an apparent user-discipline problem into a tooling problem, and it is falsifiable (see H5). It is strong because it explains an observation โ€” six near-identical headers โ€” that a pure accumulation story does not. - **Economic, step-function costs.** The storage-tier argument correctly identifies that hosting cost is discontinuous, so a small marginal input can produce a large cost jump. This is a genuinely useful reframing and is independently verifiable against any host's public pricing. - **Inductive, portfolio compounding.** "One bloated media library might take an afternoonโ€ฆ Forty of them become a standing item nobody has time for" is a sound scaling argument about maintenance capacity rather than about media. #### Fallacies - **Hasty generalization** โ€” the headline and the opening. "Every WordPress Media Library Hits the Same Wall"; "almost all of them run into the same problem." The sample is one agency's client base plus one product's customer base, both selected by the author's commercial reach, and the second is selected *for having this problem* โ€” customers arrive at a media plugin because they have media problems. **Fix:** state the sample and its selection, and downgrade "every" to "most of the portfolios I see." - **Anecdotal evidence** โ€” throughout, but sharpest at "I pulled a PageSpeed report on a client site last month where unoptimized images accounted for more than half the total page weight." One unnamed, unshared, unreproducible report is carrying the article's only quantitative load. **Fix:** publish the report, or cite HTTP Archive, where this is a public query. - **False dilemma** โ€” the "Three plugins, one collision" section. The choice is framed as three-or-four colliding plugins versus one unified product, omitting the host-level, core-level, two-plugin, and build-pipeline answers. The author partially defuses this later ("I'm not going to pretend that's the only way to solve this"), which is honest, but the hedge arrives after the section has done its work. **Fix:** move the concession into the section it qualifies, and name one composed stack that works. - **Rigged diagnostic / loaded test** โ€” "What to actually check," followed by "Most sites fail at least one of these. Agency portfolios usually fail all four." A test whose author predicts near-universal failure is a qualification funnel, not a diagnostic. The 500KB photo threshold in particular will flag legitimate full-bleed retina heroes. **Fix:** attach severity thresholds โ€” how many over-500KB images, at what share of page weight, before it matters โ€” so a passing result is possible. - **Appeal to self-interested authority** โ€” each of the three problems is corroborated by "I see/hear the same from the Infinite Uploads side." Presented as a second, independent observation; it is the same commercial vantage restated. **Fix:** label it as what it is, or corroborate with an outside operator. - **Suppressed evidence (omission)** โ€” "WordPress will happily store a 4MB JPEGโ€ฆ and it won't say a word about it" omits `big_image_size_threshold` (core since 5.3) and native WebP support (since 5.8). The claim survives in weakened form; the framing does not. **Fix:** say what core does do, then say why it is not enough. That is a stronger argument and a more credible one. - **Not a fallacy, worth recording:** the piece is honestly disclosed as sponsored. Conflict of interest here is declared, not concealed, which is why it warrants deduction on evidentiary weight rather than on good faith. #### Tone of voice - Confident, conversational, deliberately unhurried. First person throughout; contractions; short declaratives ("It doesn't happen overnight"). The register is peer-to-peer operator rather than vendor-to-prospect, which is the piece's most effective choice โ€” the sell is carried almost entirely by the framing rather than by any claim about the product. The one tonal tell is the pivot line "This is the part where I tell you what I actually did about it," which acknowledges the turn rather than disguising it. That is a small act of candor and it does real work for the author's credibility. ### ๐Ÿ›ก๏ธ DARVO Analysis - **Deny:** Not present in the accusatory sense. There is a mild minimization worth noting โ€” the characterization of WordPress core as doing nothing about image weight understates core's actual behavior since 5.3 and 5.8, which functions to enlarge the gap the product fills. That is selective framing, not denial of wrongdoing. - **Attack:** Not present. No competitor is named pejoratively. Imagify and Smush are named factually in a takeover anecdote, without disparagement of either product โ€” the criticism is aimed at the accumulation, not the vendors. The WordPress project is characterized as having built the library "for a much smaller job," which is a fair historical statement rather than an attack. - **Reverse victim/offender:** Not present. The author does not position himself or his company as wronged, and does not cast readers as culpable โ€” the failure is explicitly framed as invisible and structural rather than negligent. - **Emotional cues and rhetoric:** Low-arousal throughout. The persuasive mechanism is recognition ("I've opened client media libraries with six versions of the same header image") rather than alarm. Mild anxiety induction appears only in the "most sites fail" prediction, which is the piece's one manufactured-inadequacy move. Related fallacies are catalogued above under Logical Validity. - **Assessment: DARVO is not applicable to this source.** The piece is commercial persuasion with declared interest, not defensive rhetoric responding to an accusation. It is recorded here because the section is structurally required and because a clean negative result is itself useful โ€” it distinguishes ordinary advertising from the adversarial pattern. ## ๐ŸŽฏ Conclusion - **Bottom line.** A competent, honestly-disclosed advertorial whose problem statement outperforms its conclusion. The three decay mechanisms are real and correctly reasoned; the compounding-across-a-portfolio observation is genuinely useful; the causal claim that unfindability produces duplicate uploads is the best idea in the piece. The evidence is entirely anecdotal, the self-audit is calibrated to always fail, and the consolidation argument is presented as a binary against a straw stack while quietly understating what WordPress core already does. - **The finding worth taking away is one the post did not make.** WordPress media search indexes filename, title, caption and description โ€” but not alt text, which stays in `_wp_attachment_image_alt` postmeta and never reaches the query (verified against 7.0.2 source; Trac #22744 remains open). The field editors are most consistently trained to fill in, because accessibility review demands it, is the field search discards. That reframes an accessibility obligation as an operational asset, which is a much easier argument to fund than the ethical one. - **Next steps for readers.** Run the four checks, but attach your own severity thresholds before you start so a pass is possible. Add a fifth check the post omits: price the exit from whatever storage answer you choose. Before adopting a consolidated vendor, verify what core already handles โ€” `big_image_size_threshold`, WebP, `srcset`, native lazy loading โ€” so you are buying the actual gap rather than the marketed one. And if you have contributor time rather than budget, #22744 is a small, well-defined piece of core work with a real payoff attached. ## ๐Ÿ”„ Refactor Appendix โ€” Every WordPress Media Library Hits the Same Wall > Density: 4 Literature atoms (H3), 2 Permanent candidates (H4). > Resonance filter applied: dropped the storage-tier atom's second clause and the > plugin-collision anecdote, which restate rather than advance. ### ๐Ÿ“š Literature Atoms (H3) #### [H1] Unfindable media causes duplicate uploads > [!quote] Source: The Repository, "Scrolling through thumbnails, hoping you recognize one" > When nobody can find the logo they already uploaded, they upload it again. And again. **Context & use**: - Mid-article, the findability section; the author's own causal claim, not an inference of mine. - This is the piece's strongest idea because it reclassifies duplicate media from a hygiene failure to a search failure โ€” and search failures are fixable in software, while hygiene failures are only fixable in people. It also links directly to the alt-text finding: the fix for the search failure is partly a core patch and partly a metadata discipline that accessibility work already demands. **Tags**: #xref #articleseed **Highlight**: anchored inline in Reader on the source paragraph <!-- atomicity: 1 idea โœ“ --> #### [H2] Media libraries degrade without ever producing an error > [!quote] Source: The Repository, "The site that never looks broken" > A media library doesn't throw an error. There's no warning banner or obvious moment when things go wrong. **Context & use**: - Early, the section establishing why the problem persists. - Generalizes well past media. Maintenance is triggered by errors; systems with no error state accumulate debt indefinitely. Same shape as unrotated logs, unpruned transients, and unreviewed IAM policies. A candidate lens for a talk on silent failure classes. **Tags**: #xref #storystem **Highlight**: anchored inline in Reader on the source paragraph <!-- atomicity: 1 idea โœ“ --> #### [H3] Storage costs arrive as step functions, not gradients > [!quote] Source: The Repository, "20 GB of video on a plan built for five" > A handful of video files can push a site over its limit, leaving you paying for a larger hosting plan **Context & use**: - The storage section; states the cost mechanism explicitly. - Useful because it explains why storage bloat is invisible until it is expensive: nothing changes, nothing changes, then the invoice jumps a tier. The economically relevant unit is distance to the next boundary, not total gigabytes โ€” which is the number nobody monitors. **Tags**: #xref **Highlight**: anchored inline in Reader on the source paragraph <!-- atomicity: 1 idea โœ“ --> #### [H4] Vendor diagnostics are calibrated to return positive > [!quote] Source: The Repository, "What to actually check" > Most sites fail at least one of these. Agency portfolios usually fail all four somewhere in the mix. **Context & use**: - Immediately after the four-step self-audit; the author states the expected result before the reader runs the test. - Worth keeping as a recognition pattern rather than as a criticism of this post specifically. A checklist whose author predicts near-universal failure is a lead qualifier wearing a diagnostic's clothes. The tell is the absence of a severity threshold โ€” no way to pass. **Tags**: #xref #aphorisms **Highlight**: anchored inline in Reader on the source paragraph <!-- atomicity: 1 idea โœ“ --> ### ๐Ÿง  Permanent Candidates (H4) #### [P1] WordPress media search discards its best descriptive field **Claim** (one sentence, Courtney's voice): WordPress media search indexes filename, title, caption and description but never alt text, so the one field accessibility review reliably forces editors to populate is the one field retrieval throws away. **Evidence pointer**: [[#H1]] โ€” the article's duplicate-upload claim is the downstream symptom. Verified independently against WordPress 7.0.2 source: `wp_allow_query_attachment_by_filename` is set true for admin and AJAX media queries (`wp-admin/includes/post.php:1381`, `wp-admin/includes/ajax-actions.php:3074`), while `_wp_attachment_image_alt` appears only in output and edit paths (`wp-includes/media.php:1105`, `:4568`) and never in the search join. Trac #22744 is still open. **Scope & conditions**: Holds for core media search in wp-admin and the REST attachments controller as of 7.0.2. Does not hold where a plugin extends the search join โ€” several media managers do exactly this, which is part of why the gap is easy to miss. Counterexample to watch: if a site's alt text is auto-generated and low quality, indexing it would degrade search rather than improve it, so the argument is contingent on alt text being human-authored. **Links** (โ‰ฅ1 with annotation): - [[WordPress accessibility practice]] โ€” because extends: reframes an SC 1.1.1 obligation as an operational asset rather than a compliance cost. - [[Accessibility work needs an operational argument]] โ€” because applies-in: this is the cleanest instance I have of the general pattern, and the one I can prove from source. - [[Vendor solutions route around core gaps]] โ€” because contrasts on incentive: every plugin in this space profits from the gap staying open, which is why it stays open. `proof_state: working` ## Tests / falsifiers - Read the search join in a later core release; if `_wp_attachment_image_alt` is added, the claim expires. - Search a term present only in an image's alt text on a stock WordPress install; a hit falsifies it. - If Trac #22744 closes as wontfix with a stated performance rationale, the "unowned" half of the claim is wrong and the reason becomes the more interesting finding. <!-- atomicity: 1 idea โœ“ --> #### [P2] A test that everyone fails is a funnel, not a diagnostic **Claim** (one sentence, Courtney's voice): When the author of a checklist tells you in advance that nearly everyone fails it, the checklist is measuring reach rather than condition, and its output carries no diagnostic information. **Evidence pointer**: [[#H4]] โ€” the article states the expected failure rate immediately after presenting the test, with no severity threshold at any step. **Scope & conditions**: Applies to vendor-authored audits, maturity models, and readiness quizzes. Does not apply where a genuinely high base rate is independently established and the test still discriminates severity โ€” a test can be both accurate and near-universally failed if it grades. The distinguishing feature is the absence of a passing band, not the failure rate itself. **Links** (โ‰ฅ1 with annotation): - [[Evaluating vendor-authored technical content]] โ€” because extends: gives that note a concrete detection heuristic. - [[Site health audit methodology]] โ€” because applies-in: my own audit checklists should be read against this, and at least one of them currently lacks pass thresholds. - [[Alarm fatigue before adding alarms]] โ€” because contrasts on the same failure from the other side: a check that always fires and a check everyone fails are the same defect, one in monitoring and one in marketing. <!-- atomicity: 1 idea โœ“ --> ### โœ๏ธ Fleeting Queue - [F1] Does the Site Health screen have room for a media-weight check, and would a soft signal actually change maintenance behavior on a silent-failure class? โ€” ties [[#H2]] to core #fleeting #inbox - [F2] Price the exit from each major media offload provider โ€” full repatriation in hours and dollars. Nobody publishes this and it is the missing column in every comparison. #fleeting #inbox - [F3] The energy argument for image optimization is the rare case where the sustainability fix and the performance fix are the same action โ€” check whether anyone in WP sustainability has written it up that way. #fleeting #inbox ### โ†’ Things 3 (max 2 actions) - [ ] Draft the alt-text-search post: verify against a clean 7.0.2 install, read Trac #22744's full history, then write it for the a11y-as-operational-asset angle โ€” this is original and provable #things - [ ] Add explicit pass thresholds to the site-health-audit skill's checklists, so my own audits can return a clean result rather than only degrees of failure #things <!-- deep-read:sections end --> ๐Ÿ“„ **Full text:** [[Full Document Contents/Articles/Every WordPress Media Library Hits the Same Wall.md|Every WordPress Media Library Hits the Same Wall by Blake Whittle]] ## Highlights - Hereโ€™s what makes this particular problem sneaky. A media library doesnโ€™t throw an error. Thereโ€™s no warning banner or obvious moment when things go wrong. It just gets heavier, slower and harder to manage. ([View Highlight](https://read.readwise.io/read/01m215p8td5qydzk21ggc79nsq)) - Note: H2 โ€” silent failure class. Maintenance is triggered by errors, so systems with no error state accumulate debt indefinitely. Same shape as unrotated logs, unpruned transients, unreviewed IAM policies. Talk candidate. - Tags: atom/zettel/z1, atom/literature/h2 - That gap shows up directly in Largest Contentful Paint, the Core Web Vitals metric Google uses to judge how fast your main content loads. LCP under 2.5 seconds is what Google calls good. I pulled a PageSpeed report on a client site last month where unoptimized images accounted for more than half the total page weight, and the LCP score sat well outside that range. Convert those same files to WebP or AVIF and resize them to whatโ€™s actually displayed instead of what the camera captured, and load times drop without touching a line of code. ([View Highlight](https://read.readwise.io/read/01m215pgn25g738brs4dkc1njr)) - Note: Strong causal reasoning (images โ†’ page weight โ†’ LCP) resting on anecdotal evidence. The 2.5s threshold is a real public constant; everything else is one unnamed, unshared, unreproducible PageSpeed report carrying the article's only quantitative load. Fix: publish it, or query HTTP Archive where this is public. - Tags: fallacy/anecdotal-evidence, atom/literature/h2 - It also creates another problem: duplicate uploads. When nobody can find the logo they already uploaded, they upload it again. And again. Iโ€™ve opened client media libraries with six versions of the same header image sitting in there, each one slightly different, none of them labeled, all of them still eating storage. ([View Highlight](https://read.readwise.io/read/01m215p5n3w6gh77khvhgat4ca)) - Note: H1 โ€” the strongest idea in the piece. Reclassifies duplicate media from a hygiene failure to a search failure, and search failures are fixable in software. Links to P1: media search indexes filename/title/caption/description but NOT alt text (verified in WP 7.0.2 source; Trac #22744 open). - Tags: atom/literature/h1, atom/zettel/z1 - That storage has to live somewhere, and it shows up on your hosting bill when you cross a planโ€™s storage tier. A handful of video files can push a site over its limit, leaving you paying for a larger hosting plan largely to store files that donโ€™t need to live on your web server. ([View Highlight](https://read.readwise.io/read/01m215pawzmzjr04accqqpzqzs)) - Note: H3 โ€” storage cost is a step function, not a gradient. The economically relevant unit is distance to the next tier boundary, which is the number nobody monitors. - Tags: atom/literature/h3 - The obvious solution is to add a plugin for each problem: one for image compression, one for folders and one for cloud storage. But now you have three plugins working on the same media library. Iโ€™ve seen sites where two image plugins process the same files, or multiple media plugins collide after a core update. I hear the same story from agencies that come to Infinite Uploads after dealing with this themselves. ([View Highlight](https://read.readwise.io/read/01m215pmbry4my87hm4qbmca4k)) - Note: False dilemma plus appeal to self-interested authority in one paragraph. Three-or-four colliding plugins vs. one unified product omits the host-level, core-level, two-plugin, and build-pipeline answers; and the corroboration ("agencies that come to Infinite Uploads") is the same commercial vantage restated, not an independent observation. The author's later hedge is honest but arrives after this section has done its work. - Tags: atom/fleeting/f1, fallacy/false-dilemma - Most sites fail at least one of these. Agency portfolios usually fail all four somewhere in the mix. ([View Highlight](https://read.readwise.io/read/01m215pd2yfhsyfjcd5hs6261r)) - Note: Rigged diagnostic. The author predicts near-universal failure immediately after presenting the four-step self-audit, and no step carries a severity threshold โ€” so a pass is impossible. That makes it a lead qualifier, not a diagnostic. The tell is the missing passing band, not the failure rate. Fix: attach thresholds. - Tags: fallacy/rigged-test, atom/literature/h2, atom/zettel/z1