Index: /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 16835)
+++ /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 16836)
@@ -9,5 +9,7 @@
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import java.util.function.UnaryOperator;
@@ -15,5 +17,4 @@
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import javax.json.Json;
@@ -23,4 +24,5 @@
 
 import org.openstreetmap.josm.data.osm.OsmUtils;
+import org.openstreetmap.josm.data.preferences.CachingProperty;
 import org.openstreetmap.josm.data.preferences.ListProperty;
 import org.openstreetmap.josm.io.CachedFile;
@@ -59,4 +61,7 @@
             Collections.singletonList("resource://META-INF/resources/webjars/tag2link/2020.8.3/index.json"));
 
+    static final CachingProperty<List<String>> PREF_SEARCH_ENGINES = new ListProperty("tag2link.search",
+            Arrays.asList("https://duckduckgo.com/?q=$1", "https://www.google.com/search?q=$1")).cached();
+
     private Tag2Link() {
         // private constructor for utility class
@@ -139,5 +144,6 @@
         // Search
         if (key.matches("^(.+[:_])?name([:_]" + languagePattern + ")?$")) {
-            linkConsumer.acceptLink(tr("Search on DuckDuckGo"), "https://duckduckgo.com/?q=" + value);
+            PREF_SEARCH_ENGINES.get().forEach(url ->
+                    linkConsumer.acceptLink(tr("Search on {0}", getHost(url, url)), url.replace("$1", Utils.encodeUrl(value))));
         }
 
@@ -192,8 +198,12 @@
 
     private static String getLinkName(String url, String fallback) {
+        return tr("Open {0}", getHost(url, fallback));
+    }
+
+    private static String getHost(String url, String fallback) {
         try {
-            return tr("Open {0}", new URL(url).getHost());
+            return new URL(url).getHost().replaceFirst("^www\\.", "");
         } catch (MalformedURLException e) {
-            return tr("Open {0}", fallback);
+            return fallback;
         }
     }
Index: /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java	(revision 16835)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java	(revision 16836)
@@ -48,13 +48,23 @@
      */
     @Test
+    public void testName() {
+        Tag2Link.getLinksForTag("name", "foobar", this::addLink);
+        checkLinks("Search on duckduckgo.com // https://duckduckgo.com/?q=foobar",
+                "Search on google.com // https://www.google.com/search?q=foobar");
+    }
+
+    /**
+     * Unit test of function {@link Tag2Link#getLinksForTag}.
+     */
+    @Test
     public void testWebsite() {
         Tag2Link.getLinksForTag("website", "http://www.openstreetmap.org/", this::addLink);
-        checkLinks("Open www.openstreetmap.org // http://www.openstreetmap.org/");
+        checkLinks("Open openstreetmap.org // http://www.openstreetmap.org/");
         links.clear();
         Tag2Link.getLinksForTag("website", "https://www.openstreetmap.org/", this::addLink);
-        checkLinks("Open www.openstreetmap.org // https://www.openstreetmap.org/");
+        checkLinks("Open openstreetmap.org // https://www.openstreetmap.org/");
         links.clear();
         Tag2Link.getLinksForTag("website", "www.openstreetmap.org", this::addLink);
-        checkLinks("Open www.openstreetmap.org // http://www.openstreetmap.org");
+        checkLinks("Open openstreetmap.org // http://www.openstreetmap.org");
     }
 
