Open Journal Systems · Google Scholar · articles missing, partial, or never indexed
Open Journal Systems can produce everything Google Scholar needs — but only when the indexing plugin is on, the citation tags are correct, and the PDF is reachable as a plain file. When any one of these fails, articles are silently absent. These are the six places the failure is usually found, with the check for each.
An OJS journal is not indexed in Google Scholar when Scholar's crawler cannot read a complete set of citation_* meta tags on each article's landing page and fetch the matching full-text PDF as a direct file — regardless of how the journal looks in a browser or in Google web search.
In Open Journal Systems 3.x those tags are produced by the Google Scholar Indexing plugin, the PDF is served by the galley download route, and both must sit on one stable URL per article. There is no listing to apply for: Scholar crawls what the site exposes, so every failure is diagnosable from the site itself — the page source, the PDF response, and the redirects.
Why OJS journals go missing from Scholar
OJS is built for Scholar — which is why editors assume indexing is automatic. It is not.
The platform supplies the right pieces: Highwire Press citation_* tags, a galley download route, stable article URLs. Each one is a setting or a server configuration that can be off, misconfigured, or broken by a migration with no visible change to the site. Scholar does not report what it rejected; the only signal is articles that never appear or quietly disappear. The diagnosis therefore starts from the page source and the PDF response, not from the journal's dashboard.
Six places the failure is found · symptom, check, meaning
Symptom: article pages carry Dublin Core or Open Graph tags but no citation_* tags. In OJS 3.x the Highwire Press tags Scholar reads are emitted only by the Google Scholar Indexing plugin (Settings → Website → Plugins → Generic Plugins). It is enabled per journal, so one journal in a multi-journal install can have it on while another does not. Check: view the source of an article landing page and search for <meta name="citation_title". If it is absent, Scholar has nothing to read, and the journal is not indexable until the plugin is on.
Symptom: citation_title exists but does not match the title visible on the page or in the PDF; citation_pdf_url, citation_publication_date, or citation_journal_title is missing; authors are collapsed into one citation_author tag or split at the wrong point. Scholar matches the tags against the full text and does not index entries that disagree. Check: compare every tag on one article against the list in Scholar's Inclusion Guidelines for Webmasters, then against the first page of the PDF. Typical sources of a mismatch: metadata edited in the submission record after the galley was produced, or a theme that overrides the plugin's output.
Symptom: tags are complete, the PDF opens in a browser, and the article still does not appear. Two distinct causes. First, citation_pdf_url points at the OJS viewer page (/article/view/ID/GALLEY, which wraps the file in pdf.js) instead of the direct file route (/article/download/ID/GALLEY); Scholar needs the file, not the viewer. Second, the PDF is a scanned image with no text layer, so there is no full text to match against the tags. Check: open the citation_pdf_url value directly — it must return Content-Type: application/pdf, and the text in the file must be selectable.
Symptom: the PDF downloads for logged-in staff, but the article is absent from Scholar. Scholar's crawler is an anonymous client: a login requirement, a cookie or consent wall that intercepts the first request, a country block at the hosting or CDN level, or a subscription setting on the issue or galley each return something other than the PDF to it. A journal that intends open access but gates the file by accident loses full-text indexing, and if the landing page itself is gated, the entry. Check: fetch the citation_pdf_url from a clean session — private window, no cookies, preferably another network, or curl -I — and confirm the response is the PDF, not a redirect to a login or an HTML interstitial.
Symptom: Scholar shows some articles under one URL pattern and others under a second, or coverage dropped after a hosting change. OJS can expose the same article at several addresses: with and without index.php (the restful_urls setting in config.inc.php), over http and https, and under an old journal path after a migration or rename. Each form is a duplicate; Scholar groups what it can and loses the crawl history of what it cannot. Check: every article page carries one rel="canonical" pointing at the form you want indexed, and every retired form returns a 301 to it — not a 200, not a 302, not a soft 404.
Symptom: nothing above is wrong, and Scholar still never fetches the PDF. Hosting panels, security plugins, and CDN rules can write robots.txt or firewall rules that disallow /article/download/, block all bots except a short allow-list, or rate-limit crawlers until they give up. Rules added to keep AI scrapers out catch Scholar's crawler as collateral when they match on a class of user agents rather than a named bot. Check: read /robots.txt for any Disallow touching article or download paths, then request the PDF with a non-browser user agent and confirm a 200 with application/pdf, not a 403 or a challenge page.
Questions OJS editors ask
Measured against
Every check above is read against the sources that govern Scholar indexing — not opinion.
The technical rules an article page and its PDF must meet, including the citation_* tag list the checks above compare against.
Publisher-side policy and the troubleshooter for sites that meet the guidelines but are not yet crawled.
The Public Knowledge Project’s own guide to the Google Scholar Indexing plugin and common OJS indexing failures.
Articles missing from Scholar
The six checks are run against your actual article pages and PDF response, and the finding is written up — evidence, not a guess.
Request an OJS indexation check Paid diagnostic · written findings · DOI-safe fixes