Better Resource Hints
Better Resource Hints will make your WordPress site or application faster and generally more performant by intelligently leveraging resource hints like prefetch, preload, preconnect, and server push. As it stands, WordPress isn’t that bad about providing a base level of these hints. In fact, a basic, dedicated API has been shipped since version 4.6.. However, this functionality only scratches the service, providing only dns-prefetch tags out of the box, and there’s growing opportunity to take advantage of different hints as they are introduced and gain more browser support. Specifically, this plugin focuses on the following types of hints for your styles and JavaScript assets: Preconnecting – This hint is similar to “dns-prefetch,” but a beefier version. Instead of just resolving the DNS, the preconnect hint handles TLS negotiations and TCP handshakes, resulting in reduced page latency. Preloading – Preloading occurs when the browser is told it can start downloading an asset in the background early during page load, instead of waiting until the asset is explicitly called to start the process. This hint is most beneficial for assets loaded later on in the page, but are nonetheless essential to the page’s functionality. More often than not, this is a JavaScript file. Enabling this results in an overall faster load time, and quicker time to interactive. Prefetching – Prefetching assets is similar to preloading, but the assets are downloaded in low priority for the purpose of caching them for later use. For example, if a user hits your home page and is likely to go to a page that uses a heavy JavaScript file, it’s wise to prefetch that asset on the home page, so it’s cached and ready to go on the next. Again, the result is a quicker subsequent page load, quicker time to interactive, and an improved overall user experience. This is different from DNS prefetching, which will only resolve the DNS of a resource’s host, and not actually download the resource itself. Server Push – If enabled, server push will tell your server to start delivering an asset before the browser even asks for it. This results in a much faster delivery of key assets, and be toggled on for both preloaded, prefetched, and preconnected assets. Note: This feature requires a server that supports server push, and is the most experimental strategy this plugin provides. As with any sort of performance-enhancing technique, just be aware that they should be used judiciously, and that the results you see will depend on the size the of resources your site loads, as well as how your server is configured. For additional reading, see some of the resources below: Preload, Prefetch, & Priorities in Chrome Preloading Key Requests Preload: What’s It Good For? Resource Hints – What is Preload, Prefetch, and Preconnect? What Makes This Plugin Stand Apart? There’s no shortage of plugins out there that aim to leverage resource hints for boosting performance. However, I’ve seen that several of them make the following mistakes: Inflexible Hint Management Many similar plugins only provide very limited flexibility in their options, and only allow setting hints globally for every page, regardless of whether the resources are actually needed on the page. This can often result in unecessarily bloaging your bandwidth, since hints on several pages are effectively useless. In some cases, this could actually lead to a less performant site. This plugin attempts to provide options to manage hints more flexibily and intelligently, meaning you won’t be unecessarily preloading assets in the background when they’re not even needed on the page. Misunderstanding What Different Hints Do I’ve come across some plugins that fail to understand and leverage different hints like they were designed. For example, promising that assets are being preloaded, when they’re actually being prefetched. These and other hints have very different purposes, and should not be interchangably used if you want them to impact your site in the most effective way. This plugin attempts to leverage these hints in way to maximize their effectiveness. For example, BHR won’t prefetch any assets that are enqueued on the page, because that’s just not how the prefetch hint is designed to be used. Is Better Resource Hints perfect? Absolutely not. That’s why I encourage any constructive feedback or bug reports to be sent my way immediately, so that I can’t improve this plugin as quickly as possible. A Note About Preloading CSS Because of their high placement on a page, if the option is enabled, your CSS files will be asyncronously preloaded, and then turned into a stylesheet once they’ve completely loaded. The advantage to doing this is that while the files are downloading, they won’t block the rest of the page from rendering, resulting an overall faster page load. However, this also means that there may be a flash of unstyled content on the page for a brief moment as the files download. To prevent this, it’s recommended to only preload CSS files that are not critical to the initial view of the page. This will allow you to gain some performance points without sacrificing use experience as the page loads. Filters The following filters are exposed for your use. /** * Modify the HTML link generated for preconnecting hosts. * * @param string $link (HTML tag) * @param string $url (URL of the host) * @return string */ add_filter('better_resource_hints_preconnect_tag', function ($link, $url) { return $url; }, 10, 2); /** * Modify the HTML link generated for prefetching hosts. * * @param string $link (HTML tag) * @param string $handle (WP handle of the resource * @param string $type (script or style) * @return string */ add_filter('better_resource_hints_prefetch_tag', function ($link, $handle, $type) { return $url; }, 10, 3); /** * Modify the HTML link generated for preloading hosts. * * @param string $link (HTML tag) * @param string $handle (WP handle of the resource * @param string $type (script or style) * @return string */ add_filter('better_resource_hints_preload_tag', function ($link, $handle, $type) { return $url; }, 10, 3); What Happens Out of the Box? Upon activation, Better Resource Hints will optimize your resource hints in a conservative, low-risk way by only doing two things out of the box: Preloading JavaScript assets enqueued in the footer. Setting preconnect hints for all third party hosts that already have dns-preconnect hints. Using the Plugin After activation, you are able to adjust settings to tweak optimization as seen fit. As a means of testing your optimizations, use a tool like Google Lighthouse to measure the impact of these changes on your site’s performance. As mentioned, the techniques used here are largely supported by modern browsers, but your results may vary depending on the amount of assets being loaded on your site, as well as your server configuration. Feedback You like it? Email or tweet me. You hate it? Email or tweet me. Regardless of how you feel, your review would be greatly appreciated!
Translate WordPress with GTranslate
Translate WordPress with GTranslate plugin uses Google Translate AI translation service to translate wordpress site with Google power and make it multilingual. With 103 available languages your site will be available to more than 99% of internet users. Our paid versions are fully SEO compatible which will increase your international traffic and sales. This translate plugin is a budget multilingual WordPress solution which combines automatic and human translations to save money and is easy to implement. GTranslate is a leading website translation services provider since 2008, it moves away the language barriers. Compared to other translation plugins for WordPress, we use cloud based approach which does not slow down your website. In addition to that, we can offer complete SEO features based on sub-domains with our paid options, which can make your website appear in search engines in different languages which will increase your international traffic and sales. In our paid versions we DO NOT limit the number of words or the number of translated pageviews. You DO NOT pay additionally for automatic translations. Please use GTranslate Support for your questions and support requests! We are multilingual! Please check our FAQ to get quick answers. Free translation service: permitted use Under the GTranslate Terms of Service, the free translation service is available for personal, educational, internal testing, nonprofit and governmental purposes, provided the use does not directly generate revenue from the service. Nonprofit use must further nonprofit activities; governmental use includes public institutions and other public-sector entities. Commercial or revenue-generating use requires an applicable paid subscription. This free-service restriction does not apply to free trials of paid subscriptions. These service conditions do not change the WordPress plugin code’s GPLv2-or-later license. Features Automatic machine translation Translate website on the fly Translate posts and pages Translate categories and tags Menus and widgets translation Themes and plugins translation Right to left language support Google Translate website translator widget alternative Auto-switch language based on browser defined language Available styles Float, Dropdown, Flags, Flags with dropdown, Nice dropdown with flags, Flags with language names, Flags with language codes, Language names, Language codes, Globe, Popup Floating language selector WooCommerce shop translation Multilingual language names in native alphabet Alternative flags for Quebec, Canada, USA, Brazil, Mexico, Argentina, Colombia Lazy loading for language flags and js libraries to boost performance Lightweight vanilla javascript without dependencies Forum Support Paid Features Multilingual SEO – Enable search engine indexing Neural machine translations with human level translation quality Increase traffic and AdSense revenue Search engine friendly (SEF) URLs Yoast SEO compatible – translate meta keywords, meta description, schema.org data structures, translate sitemaps WooCommerce compatible – translate products, schema.org data structures You can have sub-directory (example.com/es/) or sub-domain (es.example.com) URL structure URL Translation aka slug translation is possible (example.com/about-us → example.es/sobre-nosotros) Add hreflang tags for translated alternatives You can manually correct translations In context translation interface (make corrections without losing the context) Meta data translation (meta keywords, meta description) Translating schema.org microdata for better search engine appearance Seamless updates (cloud service updated on our side – SaaS, you do not need to worry about backups on your side) JSON format translation Translate WooCommerce emails AMP translation (Accelerated Mobile Pages translation) Image localization – Media translation Translation Proxy (aka Translation Delivery Network) Centralized Translation Cache – We revise and improve translations over time Language Hosting (example.fr) User Dashboard with Analytics Live Chat Support See also If you are looking for unlimited, high-quality automatic translations, check out TranslateX – an automatic translation API offering unlimited translation for your website or application. We also offer integration plugins: TranslateX for Loco Translate – integrate TranslateX API directly into Loco Translate for seamless, unlimited automatic translations. TranslateX for TranslatePress – bring unlimited automatic translation to TranslatePress using TranslateX API. These solutions make it easy to supercharge your WordPress multilingual setup with TranslateX’s secure and affordable API. GTranslate WordPress Demo Watch GTranslate Tour Edit Translations Demo (paid) External services This plugin uses external services to load the language selector and obtain automatic translations. GTranslate widget delivery When the widget loads, the visitor’s browser requests its files from cdn.gtranslate.net over HTTPS. GTranslate, Inc. provides the widget, which connects the visitor’s browser to the translation service. Google translation requests When page translation is requested, the widget sends page text for translation from the visitor’s browser to translate-pa.googleapis.com over HTTPS. Google processes these translation requests. The content sent is the page text being translated. Loading widget files and requesting translations are separate network operations. These requests also expose standard connection and HTTP request information, such as the visitor’s IP address and browser headers, to the receiving service. Provider processing and retention practices are described in the applicable policies; browser-based translation does not mean that no data leaves the browser or that providers retain no data. If you configure a paid translation proxy service, translated versions of your website are processed and served through GTranslate’s cloud infrastructure according to your service configuration. GTranslate, Inc.: Terms of Service, Privacy Policy Google: Terms of Service, Privacy Policy Review these services when updating your website’s privacy information and configuring any consent or content-security controls. The plugin requires access to the relevant external services for translation to work.