How to Password Protect Google Documents and PDF files in Google Drive

Introducing PDF toolbox, a new Google Drive addon that lets you password protect PDF files and Google Documents. The app can also help you unlock PDF files that are already protected with a password in your Google Drive.

Watch the video tutorial to get started.

Password Protect PDF Files

To get started, install the PDF toolbox add-on and grant the necessary authorization. The app requires access to the file that you would like to encrypt (or decrypt) and you also have an an option to send the encrypted file as an email attachment to another user.

Next, select any PDF file or Google document in your Google Drive and expand the “Encrypt PDF” section. Enter the output file name (it will also be saved in your Google Drive), provide a password and specify whether the encrypted file should allow printing and comments.

Click the Encrypt button to create a new PDF file that would require a password to open.

Password protect PDF files

The app can secure PDF files as well as Google documents, spreadsheet and presentations. In the case of native Google documents, the file is first converted to a PDF document and then encrypted with the specified password.

Please note that the Google Drive API imposes a limit of 10 MB on the size of PDF files exported from native Google documents. Thus, similar restrictions apply with the toolbox as well.

Unlock PDF files

If you a password-protect PDF file in your Google Drive, you can use the PDF toolbox to remove the password protection. The app will create a new copy of the PDF file in your Drive that will open without requiring a password.

The workflow is similar.

Select any locked PDF in Google Drive and open the PDF toolbox app in the sidebar. Expand the “Decrypt PDF” section and and type the password that was originally used to restrict access to the PDF file.

Click the Decrypt button and, if the password matches, all restrictions would be removed from the file. The unlocked, password-free PDF file would be uploaded to Google Drive as a separate file.

Remove PDF Password

How PDF toolbox works

All files in Google Drive have an export link to download the file in PDF format. The app uses the export URL to fetch the PDF version of a file in Google Cloud storage, encrypts (or decrypts) the file with the PDF library and uploads the processed file to Google Drive of the authorized user.

All downloaded files are instantly removed from the cloud storage after the PDF file has been exported. PDF toolbox is in beta stage and the pricing will be added later this month.

Using the Web Stories for WordPress Plugin? You Better Play By Google’s Rules

Web Stories for WordPress plugin's dashboard.
Web Stories dashboard screen in WordPress.

What comes as a surprise to few, Google has updated its content guidelines for its Web Stories format. For users of its recently-released Web Stories for WordPress plugin, they will want to follow the extended rules for their Stories to appear in the “richer experiences” across Google’s services. This includes the grid view on Search, Google Images, and Google Discover’s carousel.

Google released its Web Stories plugin in late September to the WordPress community. It is a drag-and-drop editor that allows end-users to create custom Stories from a custom screen in their WordPress admin.

Visual Stories on Search.

The plugin does not directly link to Google’s content guidelines anywhere. For users who do not do a little digging, they may be caught unaware if their stories are not surfaced in various Google services.

On top of the Discover and Webmaster guidelines, Web Stories have six additional restrictions related to the following:

  • Copyrighted content
  • Text-heavy Web Stories
  • Low-quality assets
  • Lack of narrative
  • Incomplete stories
  • Overly commercial

While not using copyrighted content is one of those reasonably-obvious guidelines, the others could trip up some users. Because Stories are meant to represent bite-sized bits of information on each page, they may become ineligible if most pages have more than 180 words of text. Videos should also be limited to fewer than 60 seconds on each page.

Low-quality media could be a flag for Stories too. Google’s guidelines point toward “stretched out or pixelated” media that negatively impacts the reader’s experience. They do not offer any specific resolution guidelines, but this should mostly be a non-issue today. The opposite issue is far more likely — users uploading media that is too large and not optimized for viewing on the web.

The “lack of narrative” guideline is perhaps the vaguest, and it is unclear how Google will monitor or police narrative. However, the Stories format is about storytelling.

“Stories are the key here imo,” wrote Jamie Marsland, founder of Pootlepress, in a Twitter thread. “Now we have an open format to tell Stories, and we have an open platform (WordPress) where those Stories can be told easily.”

Google specifically states that Stories need a “binding theme or narrative structure” from one page to the next. Essentially, the company is telling users to use the format for the purpose it was created for. They also do not want users to create incomplete stories where readers must click a link to finish the Story or get information.

Web Story page from CNN's coverage of John Lennon.
CNN’s Web Story on Remembering John Lennon.

Overly commercial Stories are frowned upon too. While Google will allow affiliate marketing links, they should be restricted to a minor part of the experience.

Closing his Twitter thread, Marsland seemed to hit the point. “I’ve seen some initial Google Web Stories where the platform is being used as a replacement for a brochure or website,” he wrote. “In my view that’s a huge missed opportunity. If I was advising brands I would say ‘Tell Stories’ this is a platform for Story Telling.”

If users of the plugin follow this advice, their Stories should surface on Google’s rich search experiences.

The :focus-visible Trick

Always worth repeating: all interactive elements should have a focus style. That way, a keyboard user can tell when they have moved focus to that element.

But if you use :focus alone for this, it has a side effect that a lot of people don’t like. It means that when you click (with a mouse) on an interactive element, you’ll see the focus style. Arguably, you don’t need that feedback as a mouse user, because you just moved your cursor there and clicked. Whatever you think of that, it’s annoyed so many people over the years that they remove focus styles entirely, which is a gnarly net loss for accessibility on the web.

What if we could apply focus styles only when the keyboard is used to focus something, not the mouse? Lea Verou put a finger on this a few years back:

That was in response to Chrome dropping the feature behind a flag. Clever clever.

Fast forward a couple of years, Chrome is releasing it without a flag. They are on board with Lea’s idea:

By combining :focus-visible with :focus you can take things a step further and provide different focus styles depending on the user’s input device. This can be helpful if you want the focus indicator to depend on the precision of the input device:

/* Focusing the button with a keyboard will show a dashed black line. */
button:focus-visible {
  outline: 4px dashed black;
}
  
/* Focusing the button with a mouse, touch, or stylus will show a subtle drop shadow. */
button:focus:not(:focus-visible) {
  outline: none;
  box-shadow: 1px 1px 5px rgba(1, 1, 0, .7);
}

I might suggest trying those selectors without the button, making them globally applied!

There is more to dig into, so I’ll link up some more stuff here:

  • The Chromium Blog post covers the heuristics of the selector. It’s tricky. It’s like there is an algorithm to determine if :focus-visible is going to match or not, which you just largely need to trust. It also covers the idea that Firefox has long had :-moz-focusring, but the behavior is different enough that they don’t recommend using it if you’re shooting for consistent behavior.
  • Matthias Ott blogged about it with some good info, like using the official polyfill and how to look at the styles properly in DevTools (there is a new checkbox for it).
  • We’ve covered this before. In that, we noted Lea’s tweet that she thought usage would explode when it ships for real. Let’s see (and hope)!
  • Our almanac entry has a bunch of details.


The post The :focus-visible Trick appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Tracking Changes in MongoDB With Scala and Akka

Need for Real-Time Consistent Data

Many different databases are used at Adform, each tailored for specific requirements, but what is common for these use cases is the necessity for a consistent interchange of data between these data stores. It’s a tedious task to keep the origin of that data and its copies consistent manually, not to mention that with a sufficiently large number of multiplications the origin may not be the source of truth anymore. The need for having its own copy of data is also dictated by the necessity of loose coupling and performance. It wouldn’t be practical to be constantly impacted by every change made in the source system. The answer here is an event-based architecture which allows to keep every change consistent and provides us with the possibility of restoring the sequence of changes related to particular entities. For those reasons, the decision was made to use the publisher/subscriber model. MongoDB’s change streams saved the day, finally letting us say farewell to much more complex oplog tailing.

Change Streams

As of version 3.6 MongoDB offers change data capture implementation named as change streams. It allows us to follow every modification made to an entire database or chosen set of collections. Previous versions already offered some solution to that problem by means of oplog (operation log) mechanism but tailing it directly had serious drawbacks, especially huge traffic caused by iteration overall changes to all collections and lack of reliable API allowing to resume tracking after any interruption. Change streams solve these issues by hiding oplog’s nook and crannies from us behind refined API interoperable with reactive streams implementations.

How To Use HMS Push Kit On Xamarin.Android

In this article, we are going to take a look at Huawei Mobile Services (HMS) Push Kit Plugin for Xamarin.Android then we will send our first notification and data message by Huawei Console. After that, we will also send them by Push Kit APIs.

HUAWEI Push Kit

Push Kit is a messaging service provided by Huawei for developers. It offers to send real-time notifications and information messages. This helps developers maintain closer ties with users and increases user awareness and engagement. Furthermore, you are free to use for any different meaningful purposes.

Language Integrated Queries In Ballerina

Introduction

Data processing is one of the critical components of enterprise integration. Even though there are various approaches to process data, query expressions are usually considered the go-to approach. Language integrated queries specify the logic in SQL-like syntax to process the data/events, and they are easy to write and understand due to the simplicity of the syntax. The Ballerina programming language provides first-class support to write queries for data processing. In this article, we will discuss the query language support in Ballerina with some examples.

As of now, language integrated queries are supported for iterator implementations such as an array, map, stream, and table. There are two kinds of integrated queries that can be written in Ballerina — query expression, which allows generating a list, table, string or XML; stream and query action, which executes a set of statements for each element of the iterator.

Best of Gene Kim Collection

This week is the DevOps Enterprise Summit, Gene Kim's popular conference. Despite being in an unpredictable and uncommon year, they've planned a packed and exciting virtual conference. We felt inspired by all the work Gene Kim + team have done on the conference, so we wanted to put together our favorite articles from Gene Kim. Let's take a look.

Understanding the Work In Our Value Stream and Improving Flow

How teams support value streams, what work is required in a value stream map, and how to create a dedicated transformation team. 

Sluggish Spring Boot Tests Riddle

Most of us have faced beliefs that go unquestioned. Such ideas can vary from small daily matters such as grocery shopping to something as serious as religious matters. In my case, it was a professional belief, specifically whether or not integration tests are too slow.

There was a belief in our squad (and our chapter as well) that integration tests were slow and this belief made us not put this issue in our technical debts backlog and we all accepted it as a fact. It continued until the build time in some microservices exceeded 10 minutes and teammates started complaining about them. The first reaction was avoiding integration tests as much as possible and using unit tests instead. I know that it is not a wise decision against which there are many arguments, but It was the decision that the team made. In this post, we will see how this issue got resolved and the build time in our microservices decreased to half. 

How to Develop Your Flutter App With the BLoC Architecture

Flutter is becoming more popular each day, though it’s a rather young technology. It first appeared in 2015 as Sky, and in 2017 it became the Flutter that we know and use. Flutter is backed by Google and allows developers to create beautiful and cost-effective cross-platform applications with a native feel. 

There are many architectures you can use to build Flutter applications: 

How Can NSA Hack Your Webcam?

This is a long-awaited post, I was thinking to post about this as soon as I watched the Snowden movie a few years ago. And today morning as I saw this about “How a hacker can access your webcam through apple safari” on Reddit, I decided it's time to write this.

This is the scene that NSA operatives access a webcam of a powered-off laptop and watch a live stream. I will try to explain whether it's possible if so how.

People Problems

Just the other day, Jeremy Keith wrote that problems with performance work isn’t only a matter of optimization and fixing code, but also tackling people problems:

It struck me that there’s a continuum of performance challenges. On one end of the continuum, you’ve got technical issues. These can be solved with technical solutions. On the other end of the continuum, you’ve got human issues. These can be solved with discussions, agreement, empathy, and conversations (often dreaded or awkward).

I think that, as developers, we tend to gravitate towards the technical issues. That’s our safe space. But I suspect that bigger gains can be reaped by tackling the uncomfortable human issues.

This was definitely shocking to learn when I joined a company a few years ago and found that there was a mountain of performance work that I couldn’t do alone. I started trying to teach folks about performance, as well as holding office hours and hopping onto projects and teams that needed help. But I realized that all this work didn’t help. The website I was working on in my spare time was getting slower, despite my best efforts.

Frustrated and exhausted, one day I sat back in my chair and realized that I couldn’t do all this work alone. The real problem was this: there’s no incentive for folks to care. If performance magically improved by ten thousand percent, no one in the company would have noticed. Customers would have noticed, but we all probably wouldn’t have. Except me, because I’m a nerd.

In Ethan Marcotte’s latest talk, he describes this people problem when it comes to design systems:

Creating modular components isn’t the primary goal or even the primary benefit of creating a design system. And what’s more, a focus on process and people always leads to more sustainable systems.

Design systems are about good, quality front-end code just like performance is, too. But if people within an organization are not incentivized to use the components within a library or talk to the design systems team, then that’s where things quickly get bonkers.

I’d maybe simplify this people problem a bit: the codebase is easy to change, but the incentives within a company are not. And yet it’s the incentives that drive what kind of code gets written — what is acceptable, what needs to get fixed, how people work together. In short, we cannot be expected to fix the code without fixing the organization, too.

The most obvious incentives are money and performance ratings, or even hiring a person or team dedicated to this particular line of work. Improving visibility into performance problems and celebrating big wins is another thing that can be done to shift the balance and make folks care more about this whole new area of expertise. But these things really have to come from the top down; not from the the bottom up. At least that’s been true in my experience.

My point here is that there’s no single solution to fix the incentive problem in large organizations. It sounds silly, but in order to make that website, the biggest hurdles to overcome are those incentives. If no one cares about performance work today, then shouting and screaming and being a jerk about it won’t help at all.

Trust me, I have been that jerk.


The post People Problems appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

How To Accelerate API Integration with Behavioral Emails and Developer Segmentation

Behavioral email is the keystone of user-centric platform integration — emails to developers are most effective when they’re based on how they used your platform. Not surprisingly, the concept of segmenting your customers into groups of similar behaviors or attitudes is a well established best practice in marketing.

MarketSherpa’s survey found that one of the most effective marketing strategies is to send emails based on the behavior of your customers. Familiar examples in the B2C world include, notification that a service was signed up for but registration wasn’t completed, receipt of collateral after a form submission, and invitation to check out after a shopping cart was abandoned.

A Monthly Update With New Guides And Community Resources

Whether you’re motivated to get started with creating artworks through code or instead find yourself spending too much time getting upset over ugly website policy disclosure pages, we always like to have your back. Here at Smashing, we are committed to nourishing curiosity on what works and what doesn’t, helping folks improve their skills and workflows, and last but not least, finessing their work-life balance.

The best way to get better together is by learning from each other, and what better way is there than to promote new ideas and the way forward for the web industry. A quick peek at our ever-growing guides will show you that we’re dedicated in bringing together a variety of topics that will help us all explore and learn new things.

You can always follow us on Twitter, Facebook, LinkedIn and subscribe to our RSS feed, but it’s nice to have an overview of the most important things in one place.

So, What’s New?

Well, things never get boring at Smashing, that’s for sure! From online meetings with team members and brainstorming sessions to online Smashing workshops and live events — each day is super exciting and brings new challenges. However, there is one thing that’s making the entire team bounce off the walls: our brand new book! “TypeScript In 50 Lessons” is a book that breaks down the quirks of TypeScript into short, manageable lessons.

If you’re spending a huge amount of time programming and want to be more productive, this is the book for you; but it’s also for developers who have already dipped their toes into TypeScript and now want to get their feet wet. From type systems to defining complex JavaScript scenarios, we’ve teamed up with Stefan Baumgartner to help you lose so much less sweat and tears in your projects!

Not convinced? You’re welcome to jump to the table of contents and even download a free sample (2.3 MB, PDF).

Recommended Reading on SmashingMag:

Online Events: See You There?

And so the countdown to the year 2021 begins! We have one more live event coming up on November 10th–11th: SmashingConf San Francisco. The schedule and tickets are online for you to take a look at. We’ll be sure to have a great celebration for our final event of 2020!

As for our ongoing online workshops, we still have a good number of spots available for you! We hope you’ll find at least one workshop that fits your projects and career path, and also allows us to help make life easier for you:

Oct. 28 – Oct. 29 Designing for Emotion Masterclass Aarron Walter Design & UX
Nov. 6 – Nov. 20 Front-End Accessibility Masterclass Marcy Sutton Front-end
Nov. 18 – Nov. 26 Designing Websites That Convert Paul Boag Design & UX
Dec. 1 – Dec. 15 Smart Interface Design Patterns, 2020 Edition Vitaly Friedman Design & UX
Dec. 3 – Dec. 17 Building A Design System With CSS Andy Bell Front-end
Jan. 5 – Jan. 19 Build, Ship and Extend GraphQL APIs from Scratch Christian Nwamba Front-end
Jan. 19 – Jan. 27 Form Design Masterclass Adam Silver Design & UX

Smashing Podcast: Tune In And Get Inspired

Every second Tuesday, Drew McLellan talks to design and development experts about their work on the web. You can subscribe via your favorite app to get new episodes as soon as they’re ready.

Pssst. By the way, is there a topic that you’d love to hear and learn more about? Or perhaps you or someone you know would like to talk about a web- and design-related topic that is dear to your hearts? We’d love to hear from you! Feel free to reach out to us on Twitter and we’ll do our best to get back to you as soon as possible.

1. What Is Art Direction? 2. What’s So Great About Freelancing?
3. What Are Design Tokens? 4. What Are Inclusive Components?
5. What Are Variable Fonts? 6. What Are Micro-Frontends?
7. What Is A Government Design System? 8. What’s New In Microsoft Edge?
9. How Can I Work With UI Frameworks? 10. What Is Ethical Design?
11. What Is Sourcebit? 12. What Is Conversion Optimization?
13. What Is Online Privacy? 14. How Can I Run Online Workshops?
15. How Can I Build An App In 10 Days? 16. How Can I Optimize My Home Workspace?
17. What’s New In Drupal 9? 18. How Can I Learn React?
19. What Is CUBE CSS? 20. What Is Gatsby?
21. Are Modern Best Practices Bad For The Web? 22. What Is Serverless?
23. What Is Next.js? 24. What Is SVG Animation?
25. What Is RedwoodJS? 26. What’s New In Vue 3.0?

The next podcast episode comes out next Tuesday (Oct. 20). We’ll be speaking with Stefan Baumgartner on all things Typescript! Stay tuned!

Smashing Newsletter: Best Picks

As we’ve now started sending out weekly editions of the Smashing Newsletter, we’ve been aiming for shorter and topic-specific issues. So far, we’ve sent out editions that focus on CSS, front-end accessibility, JavaScript, UX, and even one on little helpful tools and browser extensions. Of course, we like to add in a mix of other topics as well, just so that there’s something there for everyone! 😉

We love sharing all the cool things that we see folks doing across communities within the web industry, and we hope you’ll help spread the word! Here are just some of the projects that our subscribers found most interesting and valuable:

A Reliable Date Picker Library

There are dozens of date picker libraries out there, but it’s always great to have reliable workhorses that just work across browsers, don’t have heavy dependencies, are written reasonably well, and meet all major accessibility requirements.

Duet Date Picker is just like that. It’s an accessible, WCAG 2.1 compliant date picker that can be implemented and used across any JavaScript framework or no framework at all. It comes with built-in functionality that allows you to set a minimum and a maximum allowed date, and weighs around 10kb minified and Gzip’ed (this includes all styles and icons).

If you need an alternative, check out React Dates, a library released by Airbnb that’s optimized for internationalization, while also being accessible and mobile-friendly.

The Deck Of Brilliance

Do you sometimes find yourself facing a blank page with little or no inspiration whatsoever? Competing with creatives from every corner of the globe certainly doesn’t make it easy to generate brand new ideas, especially when you feel like they’ve all already been taken.

The Deck of Brilliance gives you 52 free tools that are bound to help you work up ideas in short periods of time. All you need to do is pick a tool one after the other, and be prepared to note down your ideas when they start rolling in. The more ideas you generate, the better the chances of nailing the big one!

Accessible Comics

When we use slightly more complex shapes and layouts on the web, sometimes it appears to be so much easier to just save it as a foreground or background image and serve different images to small and large screens. This holds true for complicated charts and graphs as well as good old comics with speaking bubbles, but what if we could re-imagine the experience altogether?

Comica11y is an experiment by Paul Spencer that aims to achieve an all-inclusive online comic reading experience. What if we could have different reading modes for the comic, e.g. with closed captions, proper focus management to navigate between panels, high-contrast mode, SVG color blindness filters, programatic bubbles, selectable and translatable text, LTR and RTL support, and even adjustable font sizes? A wonderful initiative that shows just how far we can take UI challenges and use the web to enhance the experience greatly.

A Free Resource Library For Product Designers

Nowadays, it doesn’t take us too long to research a topic we’re interested in learning more about. The answers are literally a click away. But do you remember the last time you had a peek at your browser bookmarks? Saving pages to read or view later is surely useful, but wouldn’t it be handy if we had our source of inspiration all ready and available in one place?

If you’re into product design, Design Notes is a library that will prove to be a true timesaver. It currently links to 334 resources that you can filter according to the topic you’re looking for: from resources related to user experience to design and prototyping tools. Anyone can contribute to the site, so feel free to share if you see anything missing!

The UX Of Banking

Every bank claims to offer the best overall banking experience, and why wouldn’t they, right? Well, in order to find out what the challenger banks did differently, UX specialist Peter Ramsey decided it was time to put a few of them to the test.

First, he opened 12 real bank accounts in the UK, and logged everything. What followed next were six detailed chapters of his user journey: opening an account, making his first payment, freezing his card, making international payments, open banking, and last but not least, customer support. A fantastic reference guide to help you craft better experiences indeed!

How To Make Data Tables Work Everywhere

One of the main difficulties when designing tables is that we need to find a way to display the entire table (or at least its structure completely) — be it on small screens or large screens. With navigation, we could find a way with tabs, accordions or even carousels, but tables are the beast of a different kind. So how can we tame them? In his article, “Design Better Data Tables”, Andrew Coyle highlights a couple of design patterns that we could apply (e.g. by allowing users to show/hide columns, or breaking rows into cards).

Molly Hellmuth's “The Ultimate Guide To Designing Data Tables” provides a comprehensive set of best practices for designing tables, along with a free kit for tables. “How To Architect Complex Web Tables” introduces how to create a maintainable system for complex tables with resizing, filtering, truncation, and various states for each cell. Need to make a table work for mobile?

Also, “Designing a Complex Table for Mobile” shows how to transform a complex enterprise table into a manageable set of cards, filters and views on mobile by exploring it row-per-row or column-per-column. A great set of articles to dive in when dealing with those tricky tables!

Git Cheatsheets

Aw, Git! It’s always quite a challenge to remember all the right commands at just the right time, so having a few cheatsheets around can be quite useful. Git log features common ways to use the Git log to track what changed or search for commits. Git Branch cheatsheet shows how to list branches, create new ones, rename and switch branches, as well as delete them.

Need something slightly more advanced? Atlassian’s Git cheatsheet goes into more detail around Git basics, undoing changes, rewriting Git history, Git branches and remote repositories, and GitHub Cheat Sheet features shows how to inspect and compare, track path changes, share and update, ignore patterns, and add temporary commits.

Growing List Of Accessibility Resources

Chances are high that just when you need to look-up a solution or a technique, it will be quite difficult to find it quickly. Hannah Milan’s A11yresources provides a growing list of accessibility tools and resources, ranging from articles and browser extensions to newsletters and podcasts and videos.

A quite comprehensive list, well organized and structured — with pretty much everything you might need to resolve that accessibility issue quickly. For the bookmarks!

The State Of Design Systems And Prototyping 2020

It’s always interesting to explore what worked or failed for other professionals, so we can take some of the lessons and apply them to our context. The 2020 Design Systems Survey by Sparkbox highlights the results of the annual survey among organizations that have heavily invested in making design systems work well. The survey dives into common design system challenges and strategies to overcome them. The survey also dives into in-house design systems, design system maturity and the contributions of a design system to a positive culture within those organizations.

Conducted by the team behind Framer, The State of Prototyping 2020, provides a 31-pages PDF report exploring current challenges and benefits of prototyping. Only a third of respondents is able to provide a prototype within 12h. The common challenges are steep learning curves when starting to use a tool for the first time, and often the prototyping tool doesn’t fit exact requirements. A registration via email is required.

Not good enough? You can also explore the State of Email 2020, featuring current trends in email design and development, provided by Litmus.

Get Stuff Done With The Command Line

For some, the command line is a coder’s best friend, to others it might feel more like a daunting enemy. Fact is, there are a lot of awesome things you can do with terminal. Marcel Bischoff curates a list that is jam-packed with useful command line apps.

The list covers everything from automation and backup to encryption, productivity, version control, and much more that is bound to make a developer’s life easier. Even games are featured to sweeten up a long coding session. Your favorite command line app isn’t part of the list yet? You are highly encouraged to contribute to it, of course. One for the bookmarks.

Test Your Forms With Dummy Data

Testing forms can be a time-consuming process, but, luckily, it’s a task that can easily be automated. The browser extension Fake Filler was built to do just that.

Available for Chrome and Firefox, Fake Filler helps you test your forms quickly and efficiently by filling all form inputs with dummy data and randomly selecting radio buttons, dropdown menus, and checkboxes. The tool supports the maxlength property and ignores CAPTCHA, hidden, disabled, and readonly fields. A great little addition to any developer’s digital toolkit.

Make Team Calls Without Background Noises

The dog barking, kids screaming, or a construction site right outside your window — there are a lot of noises that interrupt a call or a virtual team meeting in these times where working from home has become the new normal. If you’re surrounded by a constant hustle and bustle and are afraid that it might distract your call partners, why not let AI ease the situation?

The AI-powered tool Krisp does exactly that: By clicking a button, it removes the background noise from you to other call participants when you speak, and the other way around. Whether you want to have noise-free virtual meetings or plan to record a podcast even though your apartment is located on a busy street, Krisp works in over 800 conferencing, voice messaging, streaming, and recording apps. Audio processing happens locally which means that no voice or audio will leave the device. Worth trying out.

More Smashing Stuff

In the past few years, we were very lucky to have worked together with some talented, caring people from the web community to publish their wealth of experience as printed books that stand the test of time. Paul and Alla are some of these people. Have you checked out their books already?

Click!

A practical guide on how to encourage clicks without shady tricks.

Add to cart $39

Design Systems

A practical guide to creating design languages for digital products.

Add to cart $39

Front-End & UX Workshops

Interactive, live online sessions, broken into 2.5h segments and a friendly Q&A.

Jump to topics →

Laravel 7 – Cannot retrieve array values in View::Composer

Hi, I would like to ask for help regarding on passing multiple data or array in View Composer
The error that I encounter is

Trying to get property 'settings_cust_comments' of non-object (View: B:\projects\web\redesign\resources\views\myapps\myapps\index.blade.php)

Please see code below

Thanks in advance

MyComposer.php

<?php

namespace App\Http\View\Composers;

use Illuminate\View\View;

use App\Model\MyApp\SettingsApps;
use App\Model\MyApp\SettingsMainMenu;
use App\Model\MyApp\SettingsSystemCustomerComments;

class RedesignComposer
{
    public function compose(View $view)
    {
        $settings_app = SettingsApps::where('app_name','myapp')->get();
        $settings_customer_comments = SettingsSystemCustomerComments::where('active_status','Y')->get();
        $menu = SettingsMainMenu::with('submenu')->where('app_id', 'APP001')->get();

        $data = array(
            'settings_app' => $settings_app,
            'settings_cust_comments' => $settings_customer_comments,
            'menu' => $menu
        );

        $view->with('data', $data);
    }
}

AppServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;

use App\Http\View\Composers\MyAppComposer;


class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        View::composer([
                'auth.*', 
                'myapps.*'
            ],
           MyAppComposer::class
        );
    }
}

index.blade.php (Only the portion where I output the $data)

@foreach($data->settings_cust_comments as $customer)
<p class="card-text">{{ $customer->comment }}</p>
@endforeach

12 WordPress Search Plugins to Improve Your Site Search (2023)

Are you looking for the best WordPress search plugin to improve your site search?

The default WordPress search feature is quite limited and ignores a lot of the content on your website. Thankfully, there are several WordPress plugins that can help you improve the default search experience.

In this article, we will highlight the best WordPress search plugins to improve your site search.

WordPress Search Plugins to Improve Your Site Search

Why Use a WordPress Search Plugin?

WordPress comes with a built-in search feature that can help visitors easily find what they are looking for.

An example of a search bar on the WPBeginner website

However, it is quite basic and doesn’t search all your site’s content, including comments, files, and products.

The good news is that there are several search plugins that can help you improve the built-in WordPress search feature. Some of these plugins are built for specific purposes, like searching WooCommerce products, while others improve the search experience across your entire WordPress blog or website.

That being said, let’s take a look at some of the best WordPress search plugins. Simply use the quick links below to jump straight to the plugin you want to learn more about:

1. SearchWP

The SearchWP WordPress search plugin

SearchWP is one of the best search plugins for WordPress. It is very easy to use and provides much more accurate search results compared to the built-in WordPress search.

SearchWP can search content that WordPress ignores by default, including custom post types, WooCommerce products, comments, PDFs, and more.

The SearchWP search plugin

You can create a completely custom search algorithm, similar to the algorithms used by search engines such as Google. This allows you to assign a weight (importance) to each attribute.

Content that matches an attribute with high relevancy will appear higher in the search results. By contrast, content with an attribute that has less relevancy will appear lower in the user’s search results.

For example, if you have uploaded your menu as a PDF on your restaurant website, then this is important content, and you will typically want to show it high in the search results.

With that in mind, you can simply assign this content a higher attribute relevance so that matches appear high in the search results.

Creating a custom search algorithm in WordPress using SearchWP

SearchWP also integrates with WooCommerce, so you can make a smart WooCommerce product search and even customize the product search results page.

You can even include product attributes, tags, reviews, and custom fields and taxonomies in the WooCommerce search results.

In the following image, we have added ‘color’ and ‘size’ as searchable custom fields and added product tags and categories in the taxonomies field.

Searching additional content types on your WordPress website

After creating a custom search algorithm, you can then create an unlimited number of custom search forms.

For example, if you sell digital downloads like eBooks, then you might make a search form that searches content with the ‘ebook’ tag. In this way, you can help shoppers find new books that they may want to buy.

For step-by-step instructions on how to set up this plugin, please see our guide on how to improve WordPress search with SearchWP.

Pros:

  • Automatically integrates with the built-in WordPress search.
  • Looks great with any WordPress theme.
  • Built-in search statistics.
  • Integrates with many popular WordPress plugins, including WooCommerce, Easy Digital Downloads, and bbPress.

Cons:

  • Doesn’t include live Ajax search. However, you can add this missing feature by installing the free SearchWP Live Ajax Search plugin.
  • No free plugin, so you’ll need to purchase a license to try SearchWP.

Why we chose SearchWP: SearchWP is a complete search toolkit that integrates perfectly with the native WordPress search. Simply create a search algorithm, and all the search fields and forms across your website will use SearchWP automatically.

Pricing: Licenses start from $199 per year.

2. ElasticPress

The ElasticPress WordPress search plugin

ElasticPress is a hosted WordPress search service built on ElasticSearch.

Instead of running on your WordPress site, it runs the search queries in the cloud and shows results at lightning speed. It is extremely easy to integrate on any WordPress site and works with all the best WordPress hosting providers.

ElasticPress can search content that the default WordPress search ignores, including custom fields, tags, PDF files, Microsoft Office documents, metadata, and more.

ElasticPress has built-in live Ajax search, so you can show instant results as the user is typing. It also works well with WooCommerce, so shoppers can quickly find products they are interested in buying.

You can create your own search algorithm using the Weighting dashboard and can even customize the top search terms to display your most popular WooCommerce products or top-performing content first.

Pros:

  • Built-in autosuggest.
  • An advanced connector that can handle almost any search query.
  • Shows related posts and document content in the search results.
  • A hosted service, so ElasticPress won’t slow down your WordPress website.

Cons:

  • ElasticPress is a hosted service and is a lot more expensive than any other search solution on this list. This means it may not be the best choice for beginners, personal blogs, or anyone who is working with a smaller budget.

Why we chose ElasticPress: By offloading search to an external server, you can improve your WordPress search without slowing down your website. This may not be the cheapest search plugin on our list, but it’s a great choice for business websites or enterprise sites that need lightning-fast search.

Pricing: Licenses start at $79 per month.

The Ivory Search WordPress plugin

Ivory Search is another excellent WordPress search plugin that replaces the default WordPress search.

To improve search results, Ivory Search looks at post types, image metadata, custom fields, shortcodes, attachments, and more.

An example of a WordPress search plugin

You can also use Ajax to show live search results without reloading the page.

The plugin also integrates with the WordPress theme customizer, so you can change how the search form looks using the tools you are already familiar with.

How to improve the WordPress search

With Ivory Search, you can create an unlimited number of forms with unique settings.

You can then add these forms to different areas of your site using a shortcode that the plugin creates automatically.

You can also add an advanced search form to any widget-ready area, such as the sidebar, using the Ivory Search block. This makes it easy to show the same form across your entire WordPress website.

Another option is to add the search bar to any navigation menu. In the Ivory Search settings, you can simply enable the toggle for the menu where you want to show the search field.

Adding a search bar to any WordPress navigation menu

Studying the way that people use your website’s search can also help you learn more about your users. This includes finding any content gaps where visitors are searching for content that you don’t already have on your website.

To provide this data, Ivory Search integrates with Google Analytics. However, before you can use this feature, you will need to install Google Analytics in WordPress.

Ivory works with the best WordPress translation plugins, so it’s a good choice if you want to add multilingual search in WordPress.

Pros:

  • Live Ajax search.
  • Easily change search form colors and messaging using the WordPress Customizer.
  • Add an advanced search field to any WordPress menu with the click of a button.
  • Supports multilingual search.
  • Integrates with popular plugins, including WooCommerce, Weglot, Polylang, and WPML.

Cons:

  • Ivory Search’s interface can be overwhelming and confusing to navigate, particularly for first-time users.

Why we chose Ivory Search: Although there’s a premium version, the free version is where Ivory Search really shines. If you are looking for a free WordPress search plugin that has everything you need to improve the default search, then the free download is a great option.

Pricing: The base plugin is free, while Ivory Search premium starts at $19.99 per year.

The Advanced Woo Search WordPress plugin

The free Advanced Woo Search plugin can look for matches in the product title, content, excerpt, categories, tags, ID, and SKU.

This can help shoppers find what they are looking for, including products they may not have found using the built-in WordPress search.

The Advanced Woo Search WordPress plugin

Advanced Woo Search has a straightforward settings page where you can toggle the different settings on and off, often with the click of a button. This makes the plugin very easy to set up and use.

Advanced Woo Search also shows some useful extra information inside the search results, including the product image and price. It also integrates the results into your current layout, so it will look great with any WordPress theme.

Once you have set up the plugin, it will synchronize the product data automatically. This means you won’t need to spend time manually re-indexing every time you update the product catalog. You can also add the search form to any page, post, or widget-ready area using a shortcode or widget.

Pros:

  • Supports stop words, synonyms, and plurals.
  • Supports multiple currencies and variable products.
  • Orders search results based on where they were found.
  • Easy-to-understand settings.

Cons:

  • The free plugin is missing some of the more advanced search features, including the ability to search product attributes and custom taxonomies.

Why we chose Advanced Woo Search: If you are looking to improve the default WooCommerce search but don’t have the budget for a premium plugin, then this is a great option. It also supports live Ajax search out of the box, so shoppers can see relevant results without waiting for the page to reload.

Pricing: You can download Advanced Woo Search for free from the official WordPress repository.

5. SearchWP Ajax Live

The SearchWP Ajax live WordPress plugin

SearchWP Ajax Live is an addon plugin for SearchWP, but it works with any WordPress search form that uses the built-in WordPress template tags.

This addon enhances your existing WordPress search with live Ajax search results that show up as soon as the user starts typing. This provides a better user experience and can return accurate results without even reloading the page.

An example of live Ajax search on a WooCommerce store

Live Ajax search can improve the search experience for all visitors, but it’s particularly useful if you are selling online courses, membership subscriptions, and other digital products. By helping visitors find relevant content faster, you can often get more sales.

After activating the plugin, every search bar on your site will use live Ajax search automatically. You can also add a live Ajax search bar to any page, post, or widget-ready area using a block provided by the plugin.

Adding live search to a widget-ready area

If you are using a block-based theme such as ThemeIsle Hestia Pro, then you can add live Ajax search to any part of your WordPress theme.

This includes areas you can’t edit using the standard WordPress content editor, like your site’s 404 page template.

Pros:

  • Works out of the box with minimal settings to configure.
  • Adds live Ajax search to your WordPress blog, website, or online store, similar to the live search feature used by search engines like Google.
  • Works perfectly with the default WordPress search or the SearchWP plugin.

Cons:

  • This plugin works out of the box with very few settings. While this makes the plugin easy to set up, it may feel limiting if you want more advanced customization options.

Why we chose SearchWP Ajax Lite: Live search can help visitors find what they are looking for, fast. This free plugin works out of the box and automatically adds live Ajax search to all your search fields without you having to configure any complicated settings.

Pricing: Free to download from the official WordPress repository.

Adding advanced search to a WooCommerce store

YITH WooCommerce Ajax Search is a great WooCommerce product search plugin that helps customers quickly find products in your store.

It allows customers to search products by SKU, search within specific categories, and filter the results without reloading the page.

Advanced WooCommerce search on an online store

This plugin can also search content that WordPress ignores by default, including the product excerpt, product categories and tags, and variable products.

YITH WooCommerce Ajax search is highly customizable. You can include thumbnails, badges, prices, and promotions in the live search results. This can provide shoppers with useful information, which will help them decide which product pages they want to visit.

Both the free and premium versions of the plugin also allow you to customize how the search bar looks to better suit your online store.

An example of a WordPress search plugin

The plugin works with WooCommerce stores in any language and is fully compatible with multilingual WordPress sites and stores.

Pros:

  • Shows results in real time.
  • Filter the results using categories and tags.
  • Search by SKU, which is perfect for stores with big product catalogs.
  • Highlight sales and promotions inside the search results.

Cons:

  • Although there is a free version of the plugin, it’s quite limited compared to other live Ajax plugins. For example, the free version doesn’t look for matches within product tags and categories.

Why we chose YITH WooCommerce Ajax Search: If you run a WooCommerce store, then live search can help customers find interesting products faster. With that being said, a live Ajax search plugin is a must-have, and this plugin integrates perfectly with WooCommerce. It’s also fully compatible with multilingual websites, which is perfect if you sell to an international audience.

Pricing: Starting from $79.99 per year.

7. FiboSearch

The FiboSearch WordPress plugin

FiboSearch is another excellent WooCommerce search plugin. It allows you to instantly fetch search results using Ajax without reloading the page.

FiboSearch can search for matches in the product description, short description, SKU, attributes, custom fields, product categories and tags, and more.

The FiboSearch WooCommerce search plugin

You can also exclude out-of-stock products from the search results. This can get you more sales since you are not distracting shoppers with products they can’t currently purchase.

You can also show more content as part of the live Ajax search. For example, you might add the product image, description, and pricing to provide shoppers with detailed product information without them even having to reload the page.

An example of live Ajax search on an online store

When the visitor hovers over an item in the live Ajax search, you can show an add to cart button along with a quantity field and extended product description. In this way, visitors can start the purchasing process without even visiting the product’s page.

The live Ajax search bar is also fully customizable, so you can add your own messaging, change the submit button, and choose different search bar layouts.

As you make changes, the plugin will show a preview of how the search bar will look on your online marketplace or store. In this way, you can easily try different settings to see what looks the best.

Improving your WordPress search using a plugin

When you are happy with how the search bar is set up, you can add it to any page, post, or widget-ready area using either a shortcode or block.

Another option is adding the search bar to any menu in your WordPress theme. Simply go to Appearance » Menus and then add the new ‘FiboSearch bar’ item to any navigation menu.

Adding FiboSearch to a navigation menu

Pros:

  • Integrates with the default WooCommerce search results page. This means that shoppers will see exactly the same results in both the live Ajax search and the standard search results page.
  • Support for many popular multilingual plugins, including WPML, Polylang, and qTranslate-XT.
  • Support for Google Analytics.
  • Advanced search settings, including synonyms and fuzzy search.

Cons:

  • Even if you upgrade to pro, FiboSearch doesn’t offer live chat or telephone support.

Why we chose FiboSearch: This plugin allows you to show detailed information in the live Ajax search results and even include an ‘Add to Cart’ button. In this way, you can show helpful, informative results to shoppers without them ever having to reload the page.

Pricing: The base plugin is free. The premium version starts at $49 per year.

8. Husky Products Filter for WooCommerce

The Husky Products Filter for WooCommerce WordPress search plugin

Husky Products Filter for WooCommerce is a very useful search plugin designed exclusively for WooCommerce stores.

It allows your customers to filter products by category, attributes, tags, taxonomies, meta fields, and price.

Adding an advanced product search to WooCommerce

Husky’s filters generate SEO-friendly links that you can add to your sitemap file. In this way, Husky can help improve your WooCommerce SEO.

The Husky search form is fully customizable, so you can display the different options as radio buttons, checkboxes, multi-dropdown menus, and more.

You can add search and filtering options to any page, post, or widget-ready area using a shortcode that the plugin creates automatically. Even better, Husky supports live Ajax search, so you can show live results anywhere on your online store.

Husky is easy for beginners to set up but also offers tons of customization options for developers who want to use the plugin in custom product templates. For example, you can create a custom woo-products loop template and html-items for the search form.

Pros:

  • Advanced WooCommerce search.
  • Built-in live Ajax support.
  • See the products your customers are looking for with built-in search statistics.
  • Support for infinite scrolling.
  • The option for more advanced users to create custom layout templates. 

Cons:

  • Although the plugin offers live Ajax search, according to the WordPress.org listing, this feature isn’t guaranteed to work with all WordPress themes.

Why we chose Husky Products Filter for WooCommerce: This plugin allows you to replace the limited built-in WooCommerce search, no matter what your budget is. Although the live Ajax search isn’t guaranteed to work with all WooCommerce themes, this is still a generous feature to include in a free plugin.

Pricing: Free.

9. Relevanssi

The Relevanssi WordPress search plugin

Relevanssi is another popular WordPress search plugin that improves WordPress search by fetching more relevant results.

Relevanssi adds PDF indexing and searching in WordPress, so visitors can search the contents of your site’s PDF files. Relevanssi can also search shortcode outputs, custom fields, user profiles, categories and tags, WooCommerce products, and more.

An example of a WordPress search plugin

Relavanssi also supports fuzzy matching and exact matches and can highlight the search terms in the results page.

All of this can help visitors find what they are looking for, faster.

Enabling fuzzy search in WordPress

Pros:

Cons:

  • Relevanssi has compatibility issues with some page builder plugins, BuddyPress, NextGen Gallery, and a few more. If you do run into problems, then you can see our step-by-step guide on how to properly ask for WordPress support and get it.
  • Relevanssi may take up lots of database space. With that in mind, it’s not recommended if your WordPress hosting has limited space for database tables.

Why we chose Relevanssi: Many of the free search plugins on this list are designed for use with online WooCommerce stores. However, Relevanssi is a free plugin that’s a great fit for all kinds of WordPress blogs and websites. If you run a membership website, then Relevanssi also integrates with many of the top membership plugins.

Pricing: The base plugin is free. You can upgrade to the premium version for $109 per year.

The WP Extended Search WordPress plugin

WP Extended Search is a lightweight and simple WordPress search plugin that allows you to easily extend the default WordPress search.

You can just go to the plugin settings and select the options you want to include in the search results. For example, you can search in the author name, taxonomies, post types, meta data, and more.

The WP Extended Search settings

The plugin extends the default WordPress search, so you don’t need to add any shortcodes or widgets. As long as you are using the built-in WordPress search, you simply need to install and activate the plugin, and you are good to go.

If you want to offer a more advanced search, then you can create multiple custom search forms with unique settings. You can then add these search forms to any part of your site using a widget, shortcode, PHP function, or HTML.

Adding search forms to your WordPress blog or website

Pros:

  • Automatically improves the default WordPress search.
  • Create an unlimited number of custom forms.
  • Optionally exclude old content from search results.
  • Show partial matches or exact matches only.
  • Compatible with WooCommerce.

Cons:

  • Missing some more advanced features, particularly live Ajax search.

Why we chose WP Extended Search: If you are looking for a quick and easy way to enhance the standard WordPress search, then this plugin works out of the box. Although there are some more advanced settings you can explore, this is a very lightweight plugin that’s easy to set up.

Pricing: Free.

The Better Search WordPress plugin

Better Search is another free WordPress plugin that automatically replaces the default WordPress search.

This plugin allows you to search across all post types, including custom post types. It will also look for matches in the title, post content, excerpt, meta fields, authors, tags, and comments.

The Better Search WordPress plugin

You can also change the weight of either the title or the content based on what better suits your website.

This plugin has a unique search heatmap feature that shows the most popular searches. You can add this widget to an area, such as the sidebar or footer, to encourage visitors to explore your site’s most popular search terms and content.

Pros:

  • Automatically integrates with the default WordPress search. If your WordPress theme doesn’t have a built-in search form, then you can add one by using widgets in WordPress.
  • The option to use your own template file or custom CSS.
  •  Works with caching plugins like WP Super Cache and W3 Total Cache
  • Create a list of stop words that Better Search will filter out of search queries.

Cons:

  • No option to search based on category or product attribute.
  • Doesn’t support live Ajax search.

Why we chose Better Search: Better Search provides a good range of features for a free plugin, plus some unique functionality. In particular, their heatmap is an innovative way to encourage visitors to explore more search terms and content and may make this a stand-out plugin for some website owners.

Pricing: Free.

12. Search Exclude

The Search Exclude WordPress plugin

Sometimes, you don’t want to include all your content in the search results. For example, if you are running an online store, then you may want to hide pages like your account page, custom checkout page, thank you page, and more.

Search Exclude allows you to exclude content that you don’t want to show in the WordPress search results. You can simply check a box to exclude pages, posts, WooCommerce products, and more.

The Search Exclude WordPress plugin

Even better, this plugin doesn’t hide your content from search engine crawlers. This means the hidden content will still show up in search engines like Google.

If you want to hide lots of different pages, posts, and other content, then this plugin also integrates with the bulk edit feature.

Excluding multiple items from the WordPress search results

You can go to the plugin’s settings at any point to see all the items that you have excluded from the search.

Pros:

  • A simple plugin that allows you to exclude content from the search results.
  • Doesn’t affect your WordPress SEO.

Cons:

  • This plugin simply hides items from the search results. This means you will likely still need to install extra search plugins.

Why we chose Better Search: This plugin does one task, and does it well. If you are happy with the default WordPress search, but simply want to hide a few pages, then this plugin is the perfect solution.

Pricing: Free.

Which Is the Best WordPress Search Plugin?

We believe that SearchWP is the best WordPress search plugin for most websites. It allows you to search all the content types that the built-in WordPress search ignores by default and makes it easy to create a custom search algorithm.

After that, you can create an unlimited number of unique search forms and add them to any page, post, or widget-ready area.

Although the core SearchWP plugin doesn’t offer live Ajax search, you can easily add this feature using the SearchWP Live Ajax Search.

FAQs About WordPress Search Plugins

In this guide, we have covered all of the best WordPress search plugins. If you still have questions, then here are our FAQs about improving the built-in WordPress search.

Does WordPress have a search feature?

Most WordPress themes have a built-in search feature. However, the default search is typically quite limited and doesn’t provide accurate search results.

For that reason, we recommend installing an advanced search plugin like SearchWP.

Is the default WordPress search good enough for my website?

Although WordPress has a basic built-in search, we don’t recommend relying on it. By default, WordPress doesn’t search widgets, user comments, categories, tags, WooCommerce products, or PDF documents. It also doesn’t search image gallery titles, captions, or alt text.

When creating the search results page, WordPress will start by displaying any posts that have the search term in the post title, arranged in reverse-chronological order, meaning that the newest entries will be displayed at the top of the results.

After that, it will show any posts that have the matching term in the post content.

This may not be a problem for blogs that only have small amounts of content. However, this ordering logic can often show inaccurate or confusing results when you have lots of content.

For more on this topic, please see our look at how WordPress search works.

How do I make my WordPress search better?

The best way to improve the default WordPress search is by using an advanced search plugin like SearchWP. These plugins allow you to search content types that WordPress ignores by default and may even add useful features such as live Ajax search.

How do I add live search to my WordPress website?

The best way to add live search to your website is by using SearchWP Live Ajax Search. This free plugin instantly adds live search to all the forms and search bars across your entire WordPress website.

For more information, please see our guide on how to add live Ajax search.

How do I make my WordPress website a search engine like Google?

You can create your own custom search algorithm using SearchWP. This allows you to assign weights to different attributes, such as the post’s title or its tags. In this way, you can control exactly where your content appears in the WordPress search results.

After that, you can add live search to your site using SearchWP Live Ajax Search. This plugin suggests results as the visitor is typing, just like search engines such as Google.

For more information, please see our guide on how to improve WordPress search.

We hope this article helped you find the best WordPress search plugin for your website. You may also want to see our guide on how to create an advanced search form for custom post types and our expert list of the must-have WordPress plugins for small businesses.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post 12 WordPress Search Plugins to Improve Your Site Search (2023) first appeared on WPBeginner.