En esta página: [esconder]
Incruste un PDF en un iframe y todos los visitantes de iPhone verán la página uno, entonces nada. Safari móvil de Apple ha representado archivos PDF incrustados como una imagen plana desde iOS 8. La propia documentación del bloque de archivos de Automattic todavía advierte que “most phone and tablet browsers won’t display embedded PDFs”. StatCounter put mobile at 52.57% of worldwide web traffic in July 2026. Your own split will differ, so check it in analytics before you decide the embed is good enough. Whatever the number, the advice at the top of most PDF tutorials fails for that entire slice of your audience.
respuesta rapida: Upload the PDF to your own server and link to it with a plain anchor tag. Añade el descargar attribute only if the file sits on the same domain. Embed it in the page as an extra on top of that link, never instead of it. Then send a rel =”canonical” HTTP header on the PDF, so Google credits your page and not your file.

Última revisión: agosto 2026. Browser behaviour, host upload ceilings and accessibility deadlines checked against primary sources.
How This Guide Was Put Together
Every technical claim below traces to a primary source checked in August 2026, not to a secondary write-up. Browser behaviour comes from MDN and from Apple’s developer forums. Search engine behaviour comes from Google Search Central documentation, not from SEO blogs quoting it. WordPress behaviour comes from the core release notes and the make.wordpress.org development posts. Upload ceilings come from each host’s own knowledge base. Legal deadlines come from ada.gov and the European Commission, and the document standards from ISO and the PDF Association.
Three exclusions shaped what made the cut. Any method that needs a paid service before it works at all was dropped, because a PDF link shouldn’t carry a subscription. Any technique we couldn’t confirm in vendor documentation was dropped too, however often it gets repeated. Plain FTP was left out on purpose. It sends your hosting password in clear text, and every mainstream host now offers SFTP or a browser file manager instead.
Criteria were weighted for this article’s angle. Mobile rendering counted most, because that’s where the standard advice fails. Search side effects came second, since a PDF is a URL and behaves like one. Accessibility came third, and it’s climbing fast for anyone trading in the EU.
Now the honest limits. We didn’t run a device lab across browser versions. The mobile embed failure is documented by Apple and by Automattic, and we report it as such rather than as something we measured. Host upload ceilings also change without announcement. Treat the figures here as a starting point and check your own control panel.
Before You Upload: What Your Host Actually Allows
Two limits decide whether an upload succeeds, and they sit in different places. First is the PHP setting subir_max_filesize, the hard ceiling on a single uploaded file. Second is post_max_size, which covers the whole request. Set the first higher than the second and the upload still fails. That’s why the two are usually raised together.
The ceilings vary more than you’d expect. SiteGround predefines subir_max_filesize a 256 MB and only lifts it further on Cloud accounts, by request. Bluehost ships a 50 MB default in its PHP config, which you edit yourself in a php.ini file through the File Manager. Eso es un 5x gap between two mainstream hosts, and nobody puts it on a pricing page. Is your document library the reason you’re shopping for hosting? Nuestro herramienta de búsqueda de alojamiento filters faster than reading four knowledge bases.
Here’s the thing most tutorials skip. No WordPress setting can override the server. Plugins that claim to raise your upload limit either write a php.ini file for you or chunk the upload into pieces. If the host has locked the value at the server level, both approaches stop at the same wall.
Check your own limit in about ten seconds. En WordPress, open Media, then Add New, and read the “Tamaño máximo de archivo de carga” line under the drop zone. On any host with cPanel, look under MultiPHP INI Editor. That number is your real budget, and it should drive how hard you compress in the next step.
Paso 1: Prepare the PDF Before It Touches Your Server
A PDF exported straight from a design tool is usually built for print. Eso significa 300 dpi images nobody will ever see at full resolution on a screen. Downsampling to 150 dpi is the standard target for web and email delivery. Acrobat’s Reduce File Size command typically cuts an image-heavy file by 50 a 80%, and images are almost always where the weight is.
Then turn on Fast Web View, also called linearisation. A linearised PDF moves the first page and a lookup table to the front of the file. The viewer can render page one while it fetches the rest through HTTP byte-range requests. On a 200-page manual where the reader only opens the first three pages, el otro 197 never cross the wire. apache, Nginx, IIS and the mainstream CDNs all support byte-range serving by default. The only thing standing between you and this is a checkbox in your PDF tool.
Two more things before upload. Both take a minute now and are a nuisance to undo once the file is live and linked.
- The filename becomes the URL. price-list-2026.pdf is a readable link and a readable search result. PL_FINAL_v3(2).pdf is neither. The brackets and spaces get percent-encoded into something nobody can share by hand.
- Tag the document. Tagging tells a screen reader which text is a heading and which block is a table. It also sets the reading order on a two-column page. To assistive software, an untagged PDF is a wall of characters. There’s a legal deadline attached to this now, cubierto en el accessibility section.
Is your PDF a scan? Add an OCR text layer before you upload. Google does run OCR on image-only PDFs, so the file isn’t invisible to search. But recognition accuracy drops hard on faded, handwritten or low-resolution originals. A scan without a text layer also can’t be searched, copied or read aloud by anyone.
Paso 2: Upload the File
Three routes, and the right one depends on how many files you’re moving.
The WordPress Media Library handles one or two files fine. Medios de comunicación, Añadir nuevo, drag the PDF in, then copy the File URL from the attachment details panel. That URL is what every link on your site will point at. This route also creates an extra page on some installs, which the SEO section cubiertas. Find out which side of that line your site falls on before you upload fifty files.
The hosting File Manager is fastest for a handful of files and needs nothing installed. Log into cPanel or your host’s dashboard, open File Manager, and go to public_html. Create a folder called archivos o documentos and upload there. Your URL becomes https://yoursite.com/files/price-list-2026.pdf. Keeping documents in one predictable folder pays off later. You’ll want to apply a header or a robots rule to all of them at once.
SFTP is the route for bulk. Use FileZilla, Cyberduck or WinSCP, connect on port 22 with the SFTP protocol, and drag folders across. Not FTP on port 21. That protocol sends your username and password unencrypted, and there’s no reason to accept that in 2026 when SFTP costs nothing extra. If your host still only offers plain FTP, treat it as a signal about the rest of their security posture.
Paso 3: Link to the PDF
The link itself is one line, and it hasn’t changed in twenty years:
<a href=”/files/price-list-2026.pdf”>2026 price list (PDF, 1.2 MEGABYTE)</una>
Put the format and the size in the anchor text. It’s a small courtesy that heads off the most common complaint about PDF links. Nobody enjoys tapping what looked like a page and getting a 14 MB download on mobile data.
Now the part that trips people up. los descargar attribute tells the browser to save the file rather than open it:
<a href=”/files/price-list-2026.pdf” download=”acme-price-list-2026.pdf”>Download the price list</una>
MDN states the restriction plainly: download only works for same-origin URLs, más el blob: y datos: schemes. Point it at a PDF on a different domain and the browser ignores the attribute, then navigates to the file instead. Es por eso “Download our brochure” buttons break the moment someone moves the media library to a CDN subdomain. Swap in a Google Drive link and you get the same silent failure. The markup still looks correct.
Need every PDF on the site to download rather than open, regardless of the markup? Do it at the server, con el Content-Disposition encabezamiento. In Apache, inside .htaccess:
<FilesMatch “\.(pdf)$”>
Header set Content-Disposition “attachment”
</FilesMatch>
The Nginx equivalent is add_header Content-Disposition “attachment; filename=$request_basename”; inside the matching location block. Configúrelo en en línea instead and PDFs open in the browser viewer. Una advertencia: the rule hits every PDF it matches, including ones you wanted inline. Scope it to a folder rather than the whole site.
Paso 4: Embed the PDF in the Page (If You Really Need To)
Embedding shows the document inside your layout rather than sending the visitor away. It also fails on the majority of devices. Treat it as decoration over a working link, never as the link itself.
The raw HTML version is an iframe:
<iframe src=”/files/price-list-2026.pdf#view=FitH” ancho =”100%” height=”800″ loading=”perezoso” title=”2026 price list”></iframe>
Añadir loading=”perezoso” and the browser holds the request until the frame is near the viewport. Support is broad now: Cromo 77 y arriba, Borde 79, Firefox 121, Safari 16.4, Ópera 64 and Samsung Internet 12. Para un 6 MB PDF sitting below the fold, that one attribute keeps 6 MB off the first load. los <objeto> y <embed> elements do the same job with the same mobile problem, so there’s no reason to prefer them.
The mobile problem, stated once. iOS Safari doesn’t embed the PDF. It renders a picture of page one. You can’t scroll to page two, and printing prints the picture. Apple’s developer forums have carried the report since iOS 8, and Automattic’s documentation repeats the warning for phones and tablets generally. There’s no CSS fix. The workaround is the download link you already added.
The WordPress File block is the no-code route. Insert a File block, upload the PDF, then enable “Show inline embed” under PDF settings and set a height in pixels. You also get a download button toggle and a choice of link destination. Fine for a single document on a desktop-leaning page. It gives you no mobile fallback at all, which is a real gap when the block’s own documentation admits most phones won’t render the embed.
Google Drive works when you have no server access, on a website builder or a locked-down plan. Upload to Drive and set sharing to “Anyone with the link”. Then use the preview URL in an iframe: https://drive.google.com/file/d/FILE_ID/preview. los /vista URL won’t embed, which is the single most common mistake here. Three trade-offs come with it. The file has to be publicly shared, the viewer carries Google’s interface rather than yours, and your document now lives on infrastructure you don’t control.
Adobe’s PDF Embed API is the best-looking free option. You get a proper viewer with search, zoom and page thumbnails. Register for a client ID, drop in the script, hecho. Plan around this restriction: one client ID maps to exactly one domain, with no wildcards and no comma-separated lists. A root domain does cover its subdomains. The free tier allows up to 20 client ID to domain mappings, so an agency running 30 client sites needs a second approach.
Self-hosted PDF.js is the route with no third party at all. It’s the same engine Firefox ships as its built-in viewer. It also sidesteps the iOS problem by design, because the PDF gets drawn in JavaScript onto a canvas. The browser’s own PDF handler never gets involved. You host the files too, so nothing depends on anyone else’s uptime. The cost is maintaining a JavaScript library and its updates. Worth it if you publish documents constantly. Overkill for one brochure.
Cualquiera que elijas, a large PDF is still a large transfer. Heavy documents plus an audience spread across continents? UNA CDN-backed host does more for download time than any viewer choice will.
Paso 5: Test It Before You Call It Done
The classic mistake is testing the link on the machine you built it on. Ahí, the file may still be resolving from a local path or a browser cache. Open the URL in a private window instead, with no extensions and no session.
- Paste the raw URL into the address bar. UNA 404 means the file is in the wrong folder, or the case doesn’t match. Linux servers treat Price-List.pdf y price-list.pdf as different files, and this catches people constantly.
- Test on a real phone, not a resized desktop window. Device emulation in DevTools uses the desktop rendering engine. It’ll happily show you a working PDF embed that no iPhone can display.
- Check what the download button does. If the file sits on a different subdomain from the page, la descargar attribute is being ignored. You get no warning about it.
- Check the size against your ceiling. UNA 78 MB upload that silently truncated still produces a URL. It just won’t open.
- Search Google for site:yoursite.com filetype:pdf a week later. That result set is the input to the next section.
The SEO Problem Almost Nobody Fixes
Here’s what most guides never mention. A PDF is a URL, Google indexes it, and it can outrank the page you meant people to land on. Google lists Adobe Portable Document Format among its supported encoded file types. It extracts the text and follows links inside the file the way it follows links in HTML. So your landing page and its attached whitepaper are now two results competing for the same query. The PDF is the one with no navigation, no calls to action, and no way back into your site.
The fix is one HTTP response header on the PDF, and Google documents it explicitly for non-HTML files:
Enlace: <https://www.example.com/white-paper-page/>; rel =”canonical”
That tells Googlebot the HTML page is canonical and the PDF is an alternate format of it. The URL has to be absolute, not a relative path. Almost nobody does this, and it’s why “add PDF to website” tutorials keep producing sites where the PDF ranks and the page doesn’t.
One thing to get right in Apache. Canonical is a per-file relationship, so each PDF needs its own header pointing at its own page. Utilizar una Archivos block per document, not the folder-wide FilesMatch block you used for Content-Disposition:
<Archivos “white-paper.pdf”>
Header set Link ‘<https://www.example.com/white-paper-page/>; rel =”canonical”‘
</Archivos>
Point a FilesMatch rule at every PDF in a folder and you hand all of them the same canonical URL. Google then treats forty unrelated documents as duplicates of one page, which is a worse problem than the one you set out to solve.
Should the document stay out of search entirely, as with a gated whitepaper or an internal form? Usar X-Robots-Tag: noindex as a response header. A meta robots tag can’t work here, because a PDF has no HTML head to put it in. That header is the only way to say noindex on a non-HTML resource. Don’t also block the folder in robots.txt, aunque. Blocking the crawl stops Googlebot fetching the file, so it never reads the noindex header. A URL it can’t crawl can still surface in results.
Already have PDFs ranking where they shouldn’t? Both fixes work retroactively, but not instantly. Google has to recrawl each file before it sees the new header, so pull the file list with a sitio:yoursite.com filetype:pdf search and submit the important ones through Search Console rather than waiting.
WordPress adds one more wrinkle, and which side of it you’re on depends on when your site was created. WordPress 6.4, lanzado el 7 noviembre 2023, introduced the wp_attachment_pages_enabled option and set it to 0 on new installations. A PDF uploaded to a site created after that date no longer generates a separate attachment page. Requests to that URL redirect to the file instead. Sites that upgraded into 6.4 had the option set to 1, keeping attachment pages switched on. There’s no settings screen for it either. If your site predates 6.4, every PDF you upload creates a thin near-empty URL that search engines can index. Turn it off with the WP-CLI command wp option set wp_attachment_pages_enabled 0.
One question is worth asking before any of this. Does the content need to be a PDF at all? A PDF is right when the document must print identically, carry a signature, or hold a fixed layout. Para todo lo demás, an HTML page ranks better, loads faster, adapts to a phone screen, and can be edited without a re-upload.
Accessibility Is Now a Deadline, Not a Nice-to-Have
Two pieces of law changed the stakes here, and both name documents specifically.
The European Accessibility Act, Directive (YO) 2019/882, has applied across the EU ya que 28 junio 2025, and it brings e-commerce services into scope. Bancario, transport ticketing, telecoms, e-books and audiovisual media are covered alongside it. A product manual or price list attached to an EU online store falls inside that. The presumed compliance standard is EN 301 549, which incorporates WCAG 2.1 Level AA and covers electronic documents. Microenterprises providing services are exempt from the services obligations. Microenterprise here means fewer than 10 personal, plus turnover or balance sheet total at or under EUR 2 millón.
en los estados unidos, the Department of Justice’s ADA Title II web rule sets WCAG 2.1 Level AA for state and local government web content. Compliance is due by 26 abril 2027 for entities serving 50,000 or more people, y por 26 abril 2028 for smaller ones. The rule names “word processing, presentación, PDF, or spreadsheet files” directamente. Preexisting conventional documents usually fall outside it, with one loud exception. Documents currently used to apply for, access or participate in a service have to comply. Note those years, because a fair number of 2026 guides quote an April 2026 ADA deadline that appears nowhere in the rule.
What that means for the PDF you’re about to upload:
- Tag it. Encabezados, párrafos, liza, tables and links each need the right tag. Sin ellos, a screen reader gets undifferentiated text.
- Check the reading order. On a two-column page the tag order has to follow the columns, not the raw layout order. This is the most common failure in documents that were tagged but never checked.
- Add alt text to images, and mark decorative ones as artifacts so screen readers skip them.
- Never publish an image-only scan as a document people are supposed to read. No text layer means no screen reader access and no reliable indexing.
PDF/UA is the ISO standard behind all of this. PDF/UA-1 is ISO 14289-1:2014, built on PDF 1.7. PDF/UA-2 arrived on 15 marzo 2024 as ISO 14289-2:2024, built on PDF 2.0, and it adds MathML support plus new structure element types. Check which one your PDF tool actually writes, because a document exported to the 2014 profile is not automatically wrong, just older. And if a legal deadline applies to you, the safest single move is publishing the content as an accessible HTML page. Offer the PDF as a download alongside it.
Which Method to Use: Five Real Situations
Omita las listas de verificación de funciones. Match your case to one of these.
- One-page flyer, debajo 500 KB, read mostly on phones. Plain link, no embed. Page one is the whole document, so the iframe buys you nothing and costs a download. Skip Google Drive too, since wrapping a single page in Google’s viewer is more interface than content.
- Annual report, 40 paginas, desktop-heavy B2B audience. Linearised PDF on your own server, iframe embed with loading=”perezoso”, and a visible download link above the embed. Skip the WordPress File block here. It gives you a height box and a download toggle, and no fallback for the phone visitors its own documentation says it drops.
- Gated whitepaper behind a form. Upload it, then serve X-Robots-Tag: noindex on that folder. Don’t rely on an unguessable filename. Googlebot finds files through links, and one shared URL in a public forum indexes the lot. Skip the canonical header on this one, because you want the file out of the index entirely rather than consolidated into a page.
- No server access at all, on a website builder or a locked-down plan. Google Drive with the /avance iframe URL is the only route that works. Set sharing to “Anyone with the link” or it renders an error for everyone but you. Move to Adobe’s PDF Embed API as soon as you can add a script tag, because it keeps your branding instead of Google’s.
- File bigger than your ceiling. Compress first, ya que 150 dpi downsampling usually clears the gap on its own. Still stuck at 300 MEGABYTE? SiteGround already predefines 256 MB where Bluehost defaults to 50 MEGABYTE, so changing plans may be cheaper than fighting php.ini. For genuinely large media, serve from object storage and link to it rather than pushing your web server past what it was sized for.
Preguntas frecuentes
Can I embed a PDF on my website without a plugin?
si. An iframe pointing at the PDF’s URL is all it takes, y el <objeto> y <embed> elements do the same job. WordPress also has the File block built in, con un “Show inline embed” toggle under PDF settings. None of these solve the mobile problem. Keep a download link next to whichever you use.
Why does my embedded PDF only show the first page on iPhone?
Because iOS Safari doesn’t embed the file. It renders an image of page one inside the frame. Apple’s developer forums have carried reports of this since iOS 8, and it affects iframe, object and embed equally. There’s no CSS or markup fix. Link straight to the PDF so it opens full-screen in the system viewer, where all the pages work and printing produces the real document.
How do I make a PDF download instead of opening in the browser?
Añade el descargar attribute to the link for a per-link fix. Check that the file is on the same domain first, because MDN documents that descargar only works for same-origin URLs plus blob: y datos:. For a site-wide fix, selecciona el Content-Disposition: attachment header on your PDF folder in .htaccess or your Nginx config. The server-side version is the one that survives a CDN move.
Does adding PDFs to my site help or hurt SEO?
Ambos, and configuration decides which. Google indexes PDF text and follows links inside them, so a useful document can bring in traffic. It can also outrank the HTML page it was meant to support. Enviar una Enlace: <url>; rel =”canonical” HTTP header on the PDF pointing at your page. Google then consolidates the two instead of ranking them against each other.
What’s the maximum PDF size I can upload to WordPress?
Whatever your host set, not what WordPress set. SiteGround predefines subir_max_filesize a 256 MB and raises it further only for Cloud accounts on request. Bluehost ships a 50 MB default that you edit in a php.ini file through File Manager. Check yours under Media, then Add New, where WordPress prints the current ceiling under the drop zone.
Should I host the PDF myself or use Google Drive?
Host it yourself if you have server access. A self-hosted file keeps visitors on your domain and can carry a canonical header for search. It also doesn’t depend on a sharing setting somebody might change later. Google Drive is the right answer on a website builder with no file access. The price is public sharing, plus Google’s viewer wrapped around your document.
The Three Decisions That Actually Matter
Most of this guide is detail. Three choices carry the weight.
primero, link before you embed. The link works on every device that has ever existed. The embed fails on the majority of phones and tablets. Build the link, then add the embed on top if the desktop experience justifies it.
Segundo, send the canonical header. One line in your server config stops your own PDF from competing with your own page. It costs nothing and almost nobody does it, which is the definition of an easy win.
Tercero, compress and tag before upload, no después. Fixing a 40 MB untagged PDF that’s already linked from six pages means re-uploading, re-linking and chasing the cached version. Two minutes of preparation beats an afternoon of cleanup (ask anyone who has done it the other way round).
And a bonus fourth, which is really the first: ask whether it needs to be a PDF at all. Fixed layout, print fidelity and signatures justify the format. A page of text doesn’t.
A few related guides go deeper on the parts this one only touches. nuestra guía para alojamiento web seguro covers the SFTP and file permission side properly. That matters as soon as you have a documents folder whose URLs people can guess. Growing past what a shared plan comfortably serves? Cloud storage hosting is the usual next step, and it keeps large downloads off the same server that renders your pages. For the wider picture on how file delivery affects rankings, nuestro SEO-optimized hosting guide covers the server-side signals this article touches only in passing.
