-
-
- Submit Updated Articles to Bing and Yandex with IndexNow in Joomla
- Add Published and Modified Date Meta Tags to Joomla
- Add Open Graph and Twitter Card Tags to Joomla
- Auto-Generate Meta Descriptions from Article Text in Joomla
- Add Noindex to Specific Pages in Joomla
- Verify Your Joomla Site with Google Search Console
-
- Add a View as Markdown Link to Joomla Articles
- Display the Last Modified Date in Joomla Articles
- Embed Iframes in Joomla
- Automatically Link Twitter (X) @mentions in Joomla Articles
- Open External Links in a New Tab in Joomla
- Display Estimated Reading Time in Joomla Articles
- Replace Old URLs in Joomla
- Search and Replace in Joomla
-
- Add a Footer Line to the Joomla Administrator
- Show a Staging Banner in the Joomla Administrator
- Remove the "All" Option from Admin List Limits in Joomla
- Add a Cookie Consent Banner to Joomla
- Make the Administrator Navigation Sticky in Joomla
- Add Google Fonts to Joomla
- Add a Facebook Messenger Chat Button to Joomla
- Add a Reading Progress Bar to Joomla
- Add a Custom Scrollbar to Joomla
- Show Confetti on a Thank You Page in Joomla
- Add Smooth Scrolling to Joomla
- Add a Back to Top Button in Joomla
- Add a WhatsApp Chat Button in Joomla
-
- Protect the Administrator with a Secret URL Key in Joomla
- Show a Welcome Message on First Login in Joomla
- Log Out Idle Administrators in Joomla
- Assign New Users to a Different User Group Automatically in Joomla
- Redirect Visitors by Country in Joomla
- Redirect Users After Login by User Group in Joomla
- Block User Registration with Certain Usernames in Joomla
- Block User Registration by Country in Joomla
- Block User Registration by Email Address in Joomla
- Block User Registration by IP Address in Joomla
- Remove the Forgot Password and Username Links in Joomla
- Remove the Generator Meta Tag in Joomla
- Let Users Log In with Their Email Address in Joomla
- Block Traffic by Country in Joomla
- Block Bot Traffic in Joomla
- Block Traffic by IP Address in Joomla
Admin Locations
Restyle and extend your Joomla administrator with your own CSS and JavaScript, without changing anything your visitors see.
Admin locations inject code into Joomla's backend (/administrator) pages. They follow the same Header, Body, Footer structure as Site Locations, but target the administrator area exclusively and have no effect on the frontend. They are useful for customising the Joomla back-end appearance, adding internal tooling scripts, or injecting tracking code for backend analytics without touching the site's frontend output. PHP snippets get a backend location of their own, Admin Page Load, covered below. Admin locations are part of Code Snippets Pro.
Available Locations
Admin Header
The Admin Header location inserts code inside the <head> section of every backend page. It is the right place for custom CSS that restyles or hides administrator UI elements, and for any external stylesheets or resource hints that need to be available before the backend interface renders.
Because it mirrors the Site Header in behaviour, the same rule applies: keep it to styles and resources that are genuinely needed before the page paints, as heavier content here delays the backend's time to first render.
Admin Body
The Admin Body location inserts code right after the opening <body> tag of every backend page. It takes HTML snippets only, for markup that must sit before the administrator interface itself, like the banner in Show a Staging Banner in the Joomla Administrator.
Admin Footer
The Admin Footer location inserts code just before the closing </body> tag on every backend page. It is the right place for non-critical backend JavaScript, custom UI helpers, DOM manipulation scripts that adjust the admin interface, or lightweight widgets that should not block the backend from rendering.
Scripts placed here can safely assume the backend DOM is fully available, making this the safest location for any JavaScript that reads or modifies the administrator UI.
Admin Page Load
Admin Page Load is for PHP snippets and injects nothing into the page. The code runs on every administrator request during the onAfterRoute event, before Joomla dispatches the component. Anything it echoes lands before the page's HTML, so keep echo for shortcode snippets. Use it for backend logic that needs PHP: redirecting after a backend logout, emailing a Super User on every login, or setting default values on new articles.
It runs on the login page too when the snippet's Access is Public, so a snippet that listens for the login event must stay Public. A sibling location, Site and Admin Page Load, runs the same snippet on the frontend and in the administrator. Both are part of Code Snippets Pro, while the frontend-only Site Page Load is free. Read more in the PHP snippet docs.
Supported Snippet Types
Not all snippet types are available at every admin location. Use this matrix to confirm your chosen type supports your target location.
| Snippet Type | Admin Header | Admin Body | Admin Footer | Admin Page Load |
|---|---|---|---|---|
| HTML | ✓ | ✓ | ✓ | — |
| CSS | ✓ | — | — | — |
| CSS External Files | ✓ | — | — | — |
| JavaScript | ✓ | — | ✓ | — |
| JS External Files | ✓ | — | ✓ | — |
| PHP | — | — | — | ✓ |
Troubleshooting
My snippet does not appear in the backend
Verify the snippet is published and that its location is set to one of the Admin locations rather than a Site location. Admin and Site locations are separate; a snippet assigned to Site Header will not appear in the backend. Clear the Joomla cache and reload the backend page, then inspect the page source to confirm whether the code was injected. A PHP snippet on Admin Page Load leaves nothing in the page source; check the snippets list for an Auto-Disabled status instead, and read the error on its edit screen.
CSS changes are not visible in the administrator
CSS snippets targeting the backend must use Admin Header. If the snippet is correctly placed there but the styles are not applying, open the browser's DevTools on the backend page and check whether the rule is present in the stylesheet. If it is present but not taking effect, the issue is likely a specificity conflict with the active administrator template's own styles; adjust your selectors accordingly.